Mercurial > hg > octave-lyh
annotate libgui/src/files-dock-widget.cc @ 16912:6bd74153c3ae
no native dialogs to prevent hangs in KDE (patch #7948 by Andre da Costa Barros)
* main-window.cc(handle_save_workspace_request,handle_load_workspace_request,
browse_for_directory): open the dialogs as qt instead native dialogs
* file-editor.cc(request_open_file): configure the file dialog not being native
* file-editor-tab.cc(save_file_as): configure the file dialog not being native
* files-Dock-widget.cc(popdownmenu_search_dir): search dir dialog not native
author | Torsten <ttl@justmail.de> |
---|---|
date | Sun, 07 Jul 2013 19:07:23 +0200 |
parents | 944ade6e7f66 |
children | 21ed3e2c3be6 |
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 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
3 Copyright (C) 2011-2012 Jacob Dawid |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
4 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
5 This file is part of Octave. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
6 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
7 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
|
8 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
|
9 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
|
10 option) any later version. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
11 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
12 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
|
13 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
|
14 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
|
15 for more details. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
16 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
17 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
|
18 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
|
19 <http://www.gnu.org/licenses/>. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
20 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
21 */ |
13501 | 22 |
15286
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15204
diff
changeset
|
23 #ifdef HAVE_CONFIG_H |
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15204
diff
changeset
|
24 #include <config.h> |
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15204
diff
changeset
|
25 #endif |
ae9079bbc627
Add '#include <config.h>' to C++ files in libgui/src
Rik <rik@octave.org>
parents:
15204
diff
changeset
|
26 |
14707
674740c44c09
Changed various files to matche file naming conventions.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14703
diff
changeset
|
27 #include "resource-manager.h" |
16460
4d4e7c6f839d
use consistent names for dock-widget files
John W. Eaton <jwe@octave.org>
parents:
16455
diff
changeset
|
28 #include "files-dock-widget.h" |
13501 | 29 |
30 #include <QApplication> | |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
31 #include <QClipboard> |
13501 | 32 #include <QFileInfo> |
33 #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
|
34 #include <QProcess> |
13539
a4b5cad8f7c6
Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13537
diff
changeset
|
35 #include <QDebug> |
15461
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
36 #include <QHeaderView> |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
37 #include <QLineEdit> |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
38 #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
|
39 #include <QMenu> |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
40 #include <QInputDialog> |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
41 #include <QMessageBox> |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
42 #include <QToolButton> |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
43 #include <QUrl> |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
44 #include <QDesktopServices> |
16613
99a57611d58a
add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents:
16611
diff
changeset
|
45 #include <QFileDialog> |
13501 | 46 |
16555
04fb96f4bea1
allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents:
16542
diff
changeset
|
47 #include "load-save.h" |
04fb96f4bea1
allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents:
16542
diff
changeset
|
48 |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
49 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
|
50 { |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
51 public: |
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 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
|
54 |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
55 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
|
56 { |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
57 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
|
58 QTreeView::mousePressEvent (e); |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
59 } |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
60 }; |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
61 |
15368
36ececf69385
avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents:
15367
diff
changeset
|
62 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
|
63 : octave_dock_widget (p) |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
64 { |
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
65 setObjectName ("FilesDockWidget"); |
15552
bbbb89cc338f
make a floating widget behave like a normal window (bug #37190)
Torsten <ttl@justmail.de>
parents:
15461
diff
changeset
|
66 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
|
67 set_title (tr ("File Browser")); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
68 setToolTip (tr ("Browse your files.")); |
16450
3207f1d62e74
improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
69 |
3207f1d62e74
improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
70 QWidget *container = new QWidget (this); |
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 setWidget (container); |
13501 | 73 |
16455
38ed6bdd1f7f
move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents:
16450
diff
changeset
|
74 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
|
75 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
|
76 |
38ed6bdd1f7f
move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents:
16450
diff
changeset
|
77 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
|
78 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
|
79 |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
80 // Create a toolbar |
16525
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
81 _navigation_tool_bar = new QToolBar ("", container); |
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
82 _navigation_tool_bar->setAllowedAreas (Qt::TopToolBarArea); |
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
83 _navigation_tool_bar->setMovable (false); |
13501 | 84 |
16525
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
85 _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
|
86 _current_directory->setToolTip (tr ("Enter the path or filename")); |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
87 _current_directory->setEditable(true); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
88 _current_directory->setMaxCount(MaxMRUDirs); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
89 _current_directory->setInsertPolicy(QComboBox::NoInsert); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
90 _current_directory->setSizeAdjustPolicy (QComboBox::AdjustToMinimumContentsLengthWithIcon); |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
91 QSizePolicy sizePol(QSizePolicy::Expanding, QSizePolicy::Preferred); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
92 _current_directory->setSizePolicy(sizePol); |
13501 | 93 |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
94 QAction *directory_up_action = new QAction (QIcon(":/actions/icons/up.png"), |
16525
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
95 "", _navigation_tool_bar); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
96 directory_up_action->setToolTip (tr ("Move up one directory")); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
97 |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
98 _sync_browser_directory_action = new QAction (QIcon(":/actions/icons/reload.png"), |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
99 tr("Show octave directory"), _navigation_tool_bar); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
100 _sync_browser_directory_action->setToolTip (tr ("Goto current octave directory")); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
101 _sync_browser_directory_action->setEnabled ("false"); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
102 |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
103 _sync_octave_directory_action = new QAction (QIcon(":/actions/icons/ok.png"), |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
104 tr("Set octave directory"), _navigation_tool_bar); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
105 _sync_octave_directory_action->setToolTip (tr ("Set octave directroy to current browser directory")); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
106 _sync_octave_directory_action->setEnabled ("false"); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
107 |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
108 QToolButton * popdown_button = new QToolButton(); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
109 popdown_button->setToolTip(tr ("Actions on current directory")); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
110 QMenu * popdown_menu = new QMenu(); |
16762
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
111 popdown_menu->addAction (QIcon (":/actions/icons/home.png"), |
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
112 tr ("Show Home directory"), |
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
113 this, SLOT (popdownmenu_home (bool))); |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
114 popdown_menu->addAction(_sync_browser_directory_action); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
115 popdown_menu->addAction(_sync_octave_directory_action); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
116 popdown_button->setMenu(popdown_menu); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
117 popdown_button->setPopupMode(QToolButton::InstantPopup); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
118 popdown_button->setDefaultAction(new QAction(QIcon(":/actions/icons/gear.png"),"", _navigation_tool_bar)); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
119 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
120 popdown_menu->addSeparator(); |
16613
99a57611d58a
add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents:
16611
diff
changeset
|
121 popdown_menu->addAction (QIcon (":/actions/icons/search.png"), |
99a57611d58a
add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents:
16611
diff
changeset
|
122 tr ("Search directory"), |
99a57611d58a
add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents:
16611
diff
changeset
|
123 this, SLOT (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
|
124 popdown_menu->addSeparator(); |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
125 popdown_menu->addAction( tr ("Find Files ..."), |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
126 this, SLOT(popdownmenu_findfiles(bool))); |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
127 popdown_menu->addSeparator(); |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
128 popdown_menu->addAction(QIcon(":/actions/icons/filenew.png"), |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
129 tr ("New File"), |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
130 this, SLOT(popdownmenu_newfile(bool))); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
131 popdown_menu->addAction(QIcon(":/actions/icons/folder_new.png"), |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
132 tr ("New Directory"), |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
133 this, SLOT(popdownmenu_newdir(bool))); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
134 |
16525
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
135 _navigation_tool_bar->addWidget (_current_directory); |
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
136 _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
|
137 _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
|
138 |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
139 connect (directory_up_action, SIGNAL (triggered ()), this, |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
140 SLOT (change_directory_up ())); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
141 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
|
142 SLOT (do_sync_octave_directory ())); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
143 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
|
144 SLOT (do_sync_browser_directory ())); |
13501 | 145 |
16510
e22604d4bf85
* files-dock-widget.cc(constructor): initial dir is where octave was started
Torsten <ttl@justmail.de>
parents:
16509
diff
changeset
|
146 // Create the QFileSystemModel starting in the actual directory |
e22604d4bf85
* files-dock-widget.cc(constructor): initial dir is where octave was started
Torsten <ttl@justmail.de>
parents:
16509
diff
changeset
|
147 QDir curr_dir; |
14712
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
148 _file_system_model = new QFileSystemModel (this); |
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
149 _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries); |
16510
e22604d4bf85
* files-dock-widget.cc(constructor): initial dir is where octave was started
Torsten <ttl@justmail.de>
parents:
16509
diff
changeset
|
150 QModelIndex rootPathIndex = _file_system_model->setRootPath ( |
e22604d4bf85
* files-dock-widget.cc(constructor): initial dir is where octave was started
Torsten <ttl@justmail.de>
parents:
16509
diff
changeset
|
151 curr_dir.absolutePath ()); |
13501 | 152 |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
153 // 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
|
154 _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
|
155 _file_tree_view->setSelectionMode (QAbstractItemView::ExtendedSelection); |
14712
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
156 _file_tree_view->setModel (_file_system_model); |
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
157 _file_tree_view->setRootIndex (rootPathIndex); |
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
158 _file_tree_view->setSortingEnabled (true); |
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
159 _file_tree_view->setAlternatingRowColors (true); |
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
160 _file_tree_view->setAnimated (true); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
161 _file_tree_view->setToolTip (tr ("Doubleclick a file to open it")); |
13549
807e5e9b7591
Added lots of status tips.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13539
diff
changeset
|
162 |
15461
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
163 // get sort column and order as well as cloumn state (order and width) |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
164 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
|
165 // FIXME -- what should happen if settings is 0? |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
166 _file_tree_view->sortByColumn ( |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
167 settings->value ("filesdockwidget/sort_files_by_column",0).toInt (), |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
168 static_cast<Qt::SortOrder>(settings->value ("filesdockwidget/sort_files_by_order",Qt::AscendingOrder).toUInt ()) |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
169 ); |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
170 _file_tree_view->header ()->restoreState (settings->value ("filesdockwidget/column_state").toByteArray ()); |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
171 |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
172 QStringList mru_dirs = settings->value ("filesdockwidget/mru_dir_list").toStringList (); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
173 _current_directory->addItems(mru_dirs); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
174 |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
175 _current_directory->setEditText(_file_system_model->fileInfo (rootPathIndex). |
15367
501a9cc2c68f
maint: whitespace cleanup in GUI code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15300
diff
changeset
|
176 absoluteFilePath ()); |
13501 | 177 |
16450
3207f1d62e74
improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
178 connect (_file_tree_view, SIGNAL (doubleClicked (const QModelIndex &)), |
3207f1d62e74
improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
179 this, SLOT (item_double_clicked (const QModelIndex &))); |
13501 | 180 |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
181 // add context menu to tree_view |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
182 _file_tree_view->setContextMenuPolicy(Qt::CustomContextMenu); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
183 connect(_file_tree_view, SIGNAL(customContextMenuRequested(const QPoint &)), |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
184 this, SLOT(contextmenu_requested(const QPoint &))); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
185 |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
186 // 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
|
187 QVBoxLayout *vbox_layout = new QVBoxLayout (); |
36ececf69385
avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents:
15367
diff
changeset
|
188 vbox_layout->setSpacing (0); |
16525
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
189 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
|
190 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
|
191 vbox_layout->setMargin (1); |
16450
3207f1d62e74
improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
192 |
3207f1d62e74
improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
193 container->setLayout (vbox_layout); |
3207f1d62e74
improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
194 |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
195 // TODO: Add right-click contextual menus for copying, pasting, deleting files (and others) |
13501 | 196 |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
197 connect (_current_directory->lineEdit(), SIGNAL (returnPressed ()), |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
198 this, SLOT (accept_directory_line_edit ())); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
199 |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
200 connect (_current_directory, SIGNAL (activated (const QString &)), |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
201 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
|
202 |
16635
25e418d23a4b
fix running files from file browser's context menu
Torsten <ttl@justmail.de>
parents:
16622
diff
changeset
|
203 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
|
204 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
|
205 |
16450
3207f1d62e74
improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents:
16437
diff
changeset
|
206 QCompleter *completer = new QCompleter (_file_system_model, this); |
14712
5cb54cca8a06
Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14709
diff
changeset
|
207 _current_directory->setCompleter (completer); |
13577
e440b3f32f02
Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13549
diff
changeset
|
208 |
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
|
209 setFocusProxy (_current_directory); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
210 |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
211 _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
|
212 _octave_dir = ""; |
13501 | 213 } |
214 | |
15461
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
215 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
|
216 { |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
217 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
|
218 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
|
219 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
|
220 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
|
221 settings->setValue ("filesdockwidget/sort_files_by_order", sort_order); |
16175
6f83158c714c
gui: make sure settings are really written into the settings file
Torsten <ttl@justmail.de>
parents:
16057
diff
changeset
|
222 settings->setValue ("filesdockwidget/column_state", _file_tree_view->header ()->saveState ()); |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
223 |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
224 QStringList dirs; |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
225 for(int i=0; i< _current_directory->count(); i++) |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
226 { |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
227 dirs.append(_current_directory->itemText(i)); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
228 } |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
229 settings->setValue ("filesdockwidget/mru_dir_list", dirs); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
230 |
16175
6f83158c714c
gui: make sure settings are really written into the settings file
Torsten <ttl@justmail.de>
parents:
16057
diff
changeset
|
231 settings->sync (); |
15461
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
232 } |
1e64aff609c3
save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents:
15368
diff
changeset
|
233 |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
234 void |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
235 files_dock_widget::item_double_clicked (const QModelIndex& index) |
13501 | 236 { |
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
|
237 // 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
|
238 QFileInfo fileInfo = _file_system_model->fileInfo (index); |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
239 set_current_directory (fileInfo.absoluteFilePath ()); |
13501 | 240 } |
241 | |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
242 void |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
243 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
|
244 { |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
245 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
|
246 } |
625be3eb27c5
Current directories now synchronize on top, in the file browser and the cwd in octave.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14728
diff
changeset
|
247 |
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
|
248 void |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
249 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
|
250 { |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
251 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
|
252 } |
625be3eb27c5
Current directories now synchronize on top, in the file browser and the cwd in octave.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14728
diff
changeset
|
253 |
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
|
254 void |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
255 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
|
256 { |
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
|
257 QDir dir = QDir (_file_system_model->filePath (_file_tree_view->rootIndex ())); |
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
|
258 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
|
259 display_directory (dir.absolutePath ()); |
13501 | 260 } |
261 | |
13506
c70511cf64ee
Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13504
diff
changeset
|
262 void |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
263 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
|
264 { |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
265 QDir dir = QDir (_file_system_model->filePath (_file_tree_view->rootIndex ())); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
266 emit displayed_directory_changed (dir.absolutePath ()); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
267 } |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
268 |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
269 void |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
270 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
|
271 { |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
272 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
|
273 } |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
274 |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
275 void |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
276 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
|
277 { |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
278 _octave_dir = dir; |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
279 if (_sync_octave_dir) |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
280 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
|
281 } |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
282 |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
283 void |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
284 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
|
285 { |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
286 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
|
287 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
|
288 { |
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
|
289 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
|
290 { |
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
|
291 _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
|
292 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
|
293 _file_system_model->setRootPath (fileInfo.absoluteFilePath ()); |
16437
919796a440c6
use signal for changing directory
John W. Eaton <jwe@octave.org>
parents:
16413
diff
changeset
|
294 _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
|
295 if (_sync_octave_dir && set_octave_dir) |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
296 process_set_current_dir(fileInfo.absoluteFilePath ()); |
16498
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
297 |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
298 // see if its in the list, and if it is, remove it and then, put at top of the list |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
299 int index = _current_directory->findText(fileInfo.absoluteFilePath ()); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
300 if(index != -1) |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
301 { |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
302 _current_directory->removeItem(index); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
303 } |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
304 _current_directory->insertItem(0, fileInfo.absoluteFilePath ()); |
605d7f0ee0d8
Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents:
16487
diff
changeset
|
305 _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
|
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 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
|
308 { |
16555
04fb96f4bea1
allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents:
16542
diff
changeset
|
309 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
|
310 |
04fb96f4bea1
allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents:
16542
diff
changeset
|
311 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
|
312 { |
04fb96f4bea1
allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents:
16542
diff
changeset
|
313 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
|
314 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
|
315 else |
16562
fb8fe0ed4bbb
* files-doc-widget.cc: Undo unintended changes from changeset 5fc1ce2947bd.
John W. Eaton <jwe@octave.org>
parents:
16558
diff
changeset
|
316 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
|
317 } |
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
|
318 } |
13501 | 319 } |
320 } | |
13536
869c62c15e95
Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13535
diff
changeset
|
321 |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
322 void |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
323 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
|
324 { |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
325 // 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
|
326 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
|
327 |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
328 QString file = fileInfo.absoluteFilePath (); |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
329 |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
330 QDesktopServices::openUrl (QUrl::fromLocalFile (file)); |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
331 } |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
332 |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
333 void |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
334 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
|
335 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
336 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
337 QMenu menu(this); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
338 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
339 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
|
340 //QAbstractItemModel *m = _file_tree_view->model (); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
341 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
342 if (index.isValid()) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
343 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
344 QFileInfo info = _file_system_model->fileInfo(index); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
345 |
16515
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
346 menu.addAction (QIcon (":/actions/icons/fileopen.png"), tr("Open"), |
16507
8cb12cf9ca32
gui: add icons to the context menu of the the file browser
Torsten <ttl@justmail.de>
parents:
16506
diff
changeset
|
347 this, SLOT(contextmenu_open(bool))); |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
348 |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
349 menu.addAction (tr("Open in Default Application"), |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
350 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
|
351 |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
352 menu.addAction (tr("Copy Selection to Clipboard"), |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
353 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
|
354 |
16515
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
355 if (info.isFile () && info.suffix () == "m") |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
356 menu.addAction (QIcon (":/actions/icons/artsbuilderexecute.png"), |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
357 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
|
358 |
16515
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
359 if (info.isFile ()) |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
360 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
|
361 |
16509
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
362 if (info.isDir ()) |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
363 { |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
364 menu.addSeparator (); |
16515
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
365 menu.addAction (QIcon (":/actions/icons/ok.png"), |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
366 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
|
367 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
|
368 menu.addSeparator (); |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
369 menu.addAction (tr ("Find Files ..."), this, 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
|
370 } |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
371 |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
372 menu.addSeparator(); |
16515
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
373 menu.addAction (tr ("Rename"), this, SLOT(contextmenu_rename(bool))); |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
374 menu.addAction (QIcon(":/actions/icons/editdelete.png"), tr("Delete"), |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
375 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
|
376 |
16515
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
377 if (info.isDir()) |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
378 { |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
379 menu.addSeparator(); |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
380 menu.addAction (QIcon (":/actions/icons/filenew.png"), |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
381 tr ("New File"), |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
382 this, SLOT(contextmenu_newfile(bool))); |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
383 menu.addAction (QIcon (":/actions/icons/folder_new.png"), |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
384 tr("New Directory"), |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
385 this, SLOT(contextmenu_newdir(bool))); |
87b78e75a2b9
gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents:
16510
diff
changeset
|
386 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
387 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
388 menu.exec(_file_tree_view->mapToGlobal(mpos)); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
389 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
390 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
391 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
392 |
16506
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
393 void |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
394 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
|
395 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
396 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
397 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
|
398 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
|
399 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
400 for( QModelIndexList::iterator it = rows.begin (); it != rows.end (); it++) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
401 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
402 item_double_clicked(*it); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
403 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
404 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
405 |
16506
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
406 void |
16594
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
407 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
|
408 { |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
409 QItemSelectionModel *m = _file_tree_view->selectionModel (); |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
410 QModelIndexList rows = m->selectedRows (); |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
411 |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
412 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
|
413 open_item_in_app (*it); |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
414 } |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
415 |
3ce0c312a40b
contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents:
16570
diff
changeset
|
416 void |
16622
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
417 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
|
418 { |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
419 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
|
420 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
|
421 |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
422 QStringList selection; |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
423 |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
424 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
|
425 { |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
426 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
|
427 |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
428 selection << info.fileName (); |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
429 } |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
430 |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
431 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
|
432 |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
433 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
|
434 } |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
435 |
38fef1e833ea
handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents:
16613
diff
changeset
|
436 void |
16504
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
437 files_dock_widget::contextmenu_load (bool) |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
438 { |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
439 QItemSelectionModel *m = _file_tree_view->selectionModel (); |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
440 QModelIndexList rows = m->selectedRows (); |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
441 |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
442 if (rows.size () > 0) |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
443 { |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
444 QModelIndex index = rows[0]; |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
445 |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
446 QFileInfo info = _file_system_model->fileInfo(index); |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
447 |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
448 emit load_file_signal (info.fileName ()); |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
449 } |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
450 } |
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
451 |
16506
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
452 void |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
453 files_dock_widget::contextmenu_run (bool) |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
454 { |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
455 QItemSelectionModel *m = _file_tree_view->selectionModel (); |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
456 QModelIndexList rows = m->selectedRows (); |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
457 |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
458 if (rows.size () > 0) |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
459 { |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
460 QModelIndex index = rows[0]; |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
461 |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
462 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
|
463 emit run_file_signal (info); |
16506
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
464 } |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
465 } |
8a4960f2c7c3
gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents:
16504
diff
changeset
|
466 |
16504
49b059bf27c7
allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents:
16503
diff
changeset
|
467 void |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
468 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
|
469 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
470 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
|
471 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
|
472 if(rows.size() > 0) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
473 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
474 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
|
475 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
476 QFileInfo info = _file_system_model->fileInfo(index); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
477 QDir path = info.absoluteDir(); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
478 QString old_name = info.fileName(); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
479 bool ok; |
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 QString new_name = QInputDialog::getText (this, tr("Rename file/directory"), |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
482 tr("Rename file/directory:\n") + old_name + tr("\n to: "), |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
483 QLineEdit::Normal, old_name, &ok); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
484 if(ok && new_name.length()>0) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
485 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
486 new_name = path.absolutePath() + "/" + new_name; |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
487 old_name = path.absolutePath() + "/" + old_name; |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
488 path.rename(old_name, new_name); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
489 _file_system_model->revert(); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
490 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
491 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
492 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
493 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
494 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
495 void |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
496 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
|
497 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
498 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
|
499 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
|
500 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
501 for( QModelIndexList::iterator it = rows.begin (); it != rows.end (); it++) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
502 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
503 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
|
504 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
505 QFileInfo info = _file_system_model->fileInfo(index); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
506 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
507 if(QMessageBox::question(this, tr("Delete file/directory"), |
16865
a86327a7d9fb
fix of typos in text strings of the gui
Torsten <ttl@justmail.de>
parents:
16798
diff
changeset
|
508 tr("Are you sure you want to delete\n") + 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
|
509 QMessageBox::Yes|QMessageBox::No) == QMessageBox::Yes) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
510 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
511 if(info.isDir()) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
512 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
513 // see if direcory is empty |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
514 QDir path(info.absoluteFilePath()); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
515 QList<QFileInfo> fileLst = path.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
516 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
517 if(fileLst.count() != 0) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
518 QMessageBox::warning(this, tr("Delete file/directory"), |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
519 tr("Can not delete a directory that is not empty")); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
520 else |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
521 _file_system_model->rmdir(index); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
522 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
523 else |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
524 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
525 _file_system_model->remove(index); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
526 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
527 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
528 _file_system_model->revert(); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
529 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
530 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
531 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
532 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
533 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
534 void |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
535 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
|
536 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
537 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
|
538 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
|
539 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
540 if(rows.size() > 0) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
541 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
542 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
|
543 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
544 QFileInfo info = _file_system_model->fileInfo(index); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
545 QString parent_dir = info.filePath(); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
546 |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
547 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
|
548 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
549 } |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
550 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
551 void |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
552 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
|
553 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
554 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
|
555 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
|
556 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
557 if(rows.size() > 0) |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
558 { |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
559 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
|
560 |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
561 QFileInfo info = _file_system_model->fileInfo(index); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
562 QString parent_dir = info.filePath(); |
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
563 |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
564 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
|
565 } |
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 |
16509
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
568 void |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
569 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
|
570 { |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
571 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
|
572 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
|
573 |
16509
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
574 if(rows.size() > 0) |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
575 { |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
576 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
|
577 |
16509
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
578 QFileInfo info = _file_system_model->fileInfo(index); |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
579 |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
580 if(info.isDir()) |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
581 { |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
582 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
|
583 } |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
584 } |
14045b872a3d
Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16507
diff
changeset
|
585 } |
16503
c1ff738d606d
allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents:
16499
diff
changeset
|
586 |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
587 void |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
588 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
|
589 { |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
590 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
|
591 QModelIndexList rows = m->selectedRows (); |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
592 |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
593 if(rows.size() > 0) |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
594 { |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
595 QModelIndex index = rows[0]; |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
596 |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
597 QFileInfo info = _file_system_model->fileInfo(index); |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
598 |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
599 if(info.isDir()) |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
600 { |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
601 process_find_files(info.absoluteFilePath ()); |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
602 } |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
603 } |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
604 } |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
605 |
13536
869c62c15e95
Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13535
diff
changeset
|
606 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
|
607 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
|
608 { |
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
|
609 // 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
|
610 |
16525
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
611 int icon_size = settings->value ("toolbar_icon_size",24).toInt (); |
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
612 if (icon_size > 16) |
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
613 icon_size = icon_size - 4; |
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
614 _navigation_tool_bar->setIconSize (QSize (icon_size,icon_size)); |
e192525236ad
configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents:
16515
diff
changeset
|
615 |
16410
f62163bed4dc
gui: always show file names in file dock widget
Torsten <ttl@justmail.de>
parents:
16379
diff
changeset
|
616 // 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
|
617 _file_tree_view->setColumnHidden (0, false); |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
618 _file_tree_view->setColumnHidden (1, !settings->value ("filesdockwidget/showFileSize",false).toBool ()); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
619 _file_tree_view->setColumnHidden (2, !settings->value ("filesdockwidget/showFileType",false).toBool ()); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
620 _file_tree_view->setColumnHidden (3, !settings->value ("filesdockwidget/showLastModified",false).toBool ()); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
621 _file_tree_view->setAlternatingRowColors (settings->value ("filesdockwidget/useAlternatingRowColors",true).toBool ()); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
622 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
|
623 { |
4bb1b82076e5
gui: provide defaults for all values read from the settings file
Torsten <ttl@justmail.de>
parents:
16175
diff
changeset
|
624 // TODO: React on option for hidden files. |
4bb1b82076e5
gui: provide defaults for all values read from the settings file
Torsten <ttl@justmail.de>
parents:
16175
diff
changeset
|
625 } |
16499
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
626 // enalbe the buttons to sync octave/browser dir only if this is not done by default |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
627 _sync_octave_dir = settings->value ("filesdockwidget/sync_octave_directory",false).toBool (); |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
628 _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
|
629 _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
|
630 |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
631 if (_sync_octave_dir) |
facf00ce97d3
gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents:
16498
diff
changeset
|
632 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
|
633 |
13536
869c62c15e95
Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13535
diff
changeset
|
634 } |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
635 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
636 void |
16762
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
637 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
|
638 { |
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
639 QString dir = QDir::homePath (); |
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
640 set_current_directory (dir); |
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
641 } |
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
642 |
42555422e326
Add Show home directory to files window popdown.
John Donoghue <john.donoghue@ieee.org>
parents:
16709
diff
changeset
|
643 void |
16613
99a57611d58a
add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents:
16611
diff
changeset
|
644 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
|
645 { |
16709
1070f2ca1367
fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents:
16699
diff
changeset
|
646 QString dir = QFileDialog::getExistingDirectory |
16912
6bd74153c3ae
no native dialogs to prevent hangs in KDE (patch #7948 by Andre da Costa Barros)
Torsten <ttl@justmail.de>
parents:
16881
diff
changeset
|
647 (this, tr ("Set directory of file browser"),_file_system_model->rootPath(), |
6bd74153c3ae
no native dialogs to prevent hangs in KDE (patch #7948 by Andre da Costa Barros)
Torsten <ttl@justmail.de>
parents:
16881
diff
changeset
|
648 QFileDialog::DontUseNativeDialog); |
16709
1070f2ca1367
fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents:
16699
diff
changeset
|
649 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
|
650 } |
99a57611d58a
add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents:
16611
diff
changeset
|
651 |
99a57611d58a
add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents:
16611
diff
changeset
|
652 void |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
653 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
|
654 { |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
655 process_find_files(_file_system_model->rootPath()); |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
656 } |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
657 |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
658 void |
16542
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
659 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
|
660 { |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
661 process_new_dir(_file_system_model->rootPath()); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
662 } |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
663 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
664 void |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
665 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
|
666 { |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
667 process_new_file(_file_system_model->rootPath()); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
668 } |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
669 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
670 void |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
671 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
|
672 { |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
673 bool ok; |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
674 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
675 QString name = QInputDialog::getText (this, tr("Create File"), tr("Create file in\n") + parent_dir, |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
676 QLineEdit::Normal, "New File.txt", &ok); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
677 if(ok && name.length()>0) |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
678 { |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
679 name = parent_dir + "/" + name; |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
680 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
681 QFile file(name); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
682 file.open(QIODevice::WriteOnly); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
683 _file_system_model->revert(); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
684 } |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
685 } |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
686 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
687 void |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
688 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
|
689 { |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
690 bool ok; |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
691 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
692 QString name = QInputDialog::getText (this, tr("Create Directory"), tr("Create folder in\n") + parent_dir, |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
693 QLineEdit::Normal, "New Directory", &ok); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
694 if(ok && name.length()>0) |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
695 { |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
696 QDir dir(parent_dir); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
697 dir.mkdir(name); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
698 _file_system_model->revert(); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
699 } |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
700 } |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
701 |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
702 void files_dock_widget::process_set_current_dir(const QString & dir) |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
703 { |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
704 emit displayed_directory_changed (dir); |
016073c0cb94
Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents:
16525
diff
changeset
|
705 } |
16699
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
706 |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
707 void files_dock_widget::process_find_files(const QString & dir) |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
708 { |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
709 emit find_files_signal(dir); |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
710 } |
d4bcb38ad056
Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents:
16635
diff
changeset
|
711 |
16881
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
712 void |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
713 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
|
714 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
715 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
|
716 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
|
717 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
|
718 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
719 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
|
720 |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
721 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
|
722 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
|
723 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
724 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
|
725 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
726 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
727 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
728 |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
729 void |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
730 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
|
731 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
732 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
|
733 { |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
734 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
|
735 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
|
736 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
|
737 if (edit && str.length () > 0) |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
738 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
|
739 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
740 } |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
741 |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
742 |
944ade6e7f66
Make main window copy and paste global for current focused window
John Donoghue <john.donoghue@ieee.org>
parents:
16865
diff
changeset
|
743 |