annotate libgui/src/files-dock-widget.cc @ 16709:1070f2ca1367

fix searching new directory for file browser * files-dock-widget.cc(popdownmenu_search_dir): start searching in current browser directory and set browser directory instead of octave directory
author Torsten <ttl@justmail.de>
date Fri, 31 May 2013 20:54:59 +0200
parents d4bcb38ad056
children 42555422e326
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15204
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
1 /*
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
2
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
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
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
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
29
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
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
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
32 #include <QFileInfo>
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
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
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
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"));
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
67 setWindowTitle (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
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
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&)),
38ed6bdd1f7f move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents: 16450
diff changeset
75 parent (), SLOT (open_file (const QString&)));
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&)),
38ed6bdd1f7f move signal/slot connections from main window to sub window where possible
John W. Eaton <jwe@octave.org>
parents: 16450
diff changeset
78 parent (), SLOT (set_current_working_directory (const QString&)));
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
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
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
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
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();
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
111 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
112 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
113 popdown_button->setMenu(popdown_menu);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
114 popdown_button->setPopupMode(QToolButton::InstantPopup);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
115 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
116
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
117 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
118 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
119 tr ("Search directory"),
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
120 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
121 popdown_menu->addSeparator();
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
122 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
123 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
124 popdown_menu->addSeparator();
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
125 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
126 tr ("New File"),
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
127 this, SLOT(popdownmenu_newfile(bool)));
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/folder_new.png"),
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
129 tr ("New Directory"),
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
130 this, SLOT(popdownmenu_newdir(bool)));
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
131
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
132 _navigation_tool_bar->addWidget (_current_directory);
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
133 _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
134 _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
135
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
136 connect (directory_up_action, SIGNAL (triggered ()), this,
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
137 SLOT (change_directory_up ()));
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
138 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
139 SLOT (do_sync_octave_directory ()));
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
140 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
141 SLOT (do_sync_browser_directory ()));
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
142
16510
e22604d4bf85 * files-dock-widget.cc(constructor): initial dir is where octave was started
Torsten <ttl@justmail.de>
parents: 16509
diff changeset
143 // 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
144 QDir curr_dir;
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
145 _file_system_model = new QFileSystemModel (this);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
146 _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
147 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
148 curr_dir.absolutePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
149
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
150 // 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
151 _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
152 _file_tree_view->setSelectionMode (QAbstractItemView::ExtendedSelection);
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
153 _file_tree_view->setModel (_file_system_model);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
154 _file_tree_view->setRootIndex (rootPathIndex);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
155 _file_tree_view->setSortingEnabled (true);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
156 _file_tree_view->setAlternatingRowColors (true);
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
157 _file_tree_view->setAnimated (true);
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
158 _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
159
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
160 // 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
161 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
162 // 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
163 _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
164 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
165 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
166 );
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
167 _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
168
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
169 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
170 _current_directory->addItems(mru_dirs);
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
171
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
172 _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
173 absoluteFilePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
174
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
175 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
176 this, SLOT (item_double_clicked (const QModelIndex &)));
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
177
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
178 // 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
179 _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
180 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
181 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
182
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
183 // 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
184 QVBoxLayout *vbox_layout = new QVBoxLayout ();
36ececf69385 avoid some GCC warnings in the libgui code
John W. Eaton <jwe@octave.org>
parents: 15367
diff changeset
185 vbox_layout->setSpacing (0);
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
186 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
187 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
188 vbox_layout->setMargin (1);
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
189
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
190 container->setLayout (vbox_layout);
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
191
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
192 // TODO: Add right-click contextual menus for copying, pasting, deleting files (and others)
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
193
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
194 connect (_current_directory->lineEdit(), SIGNAL (returnPressed ()),
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
195 this, SLOT (accept_directory_line_edit ()));
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
196
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
197 connect (_current_directory, SIGNAL (activated (const QString &)),
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
198 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
199
16635
25e418d23a4b fix running files from file browser's context menu
Torsten <ttl@justmail.de>
parents: 16622
diff changeset
200 connect (this, SIGNAL (run_file_signal (const QFileInfo&)),
25e418d23a4b fix running files from file browser's context menu
Torsten <ttl@justmail.de>
parents: 16622
diff changeset
201 parent (), 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
202
16450
3207f1d62e74 improve encapsulation of file browser window object
John W. Eaton <jwe@octave.org>
parents: 16437
diff changeset
203 QCompleter *completer = new QCompleter (_file_system_model, this);
14712
5cb54cca8a06 Completion of code reformatting.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14709
diff changeset
204 _current_directory->setCompleter (completer);
13577
e440b3f32f02 Fixed bug with closing subwindows.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13549
diff changeset
205
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
206 setFocusProxy (_current_directory);
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
207
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
208 _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
209 _octave_dir = "";
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
210 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
211
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
212 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
213 {
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
214 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
215 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
216 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
217 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
218 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
219 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
220
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
221 QStringList dirs;
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
222 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
223 {
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
224 dirs.append(_current_directory->itemText(i));
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
225 }
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
226 settings->setValue ("filesdockwidget/mru_dir_list", dirs);
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
227
16175
6f83158c714c gui: make sure settings are really written into the settings file
Torsten <ttl@justmail.de>
parents: 16057
diff changeset
228 settings->sync ();
15461
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
229 }
1e64aff609c3 save/restore column state and sorting (column and order) in files-widget
Torsten <ttl@justmail.de>
parents: 15368
diff changeset
230
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
231 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
232 files_dock_widget::item_double_clicked (const QModelIndex& index)
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
233 {
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
234 // 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
235 QFileInfo fileInfo = _file_system_model->fileInfo (index);
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
236 set_current_directory (fileInfo.absoluteFilePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
237 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
238
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
239 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
240 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
241 {
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
242 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
243 }
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
244
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
245 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
246 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
247 {
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
248 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
249 }
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
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
251 void
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
252 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
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 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
255 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
256 display_directory (dir.absolutePath ());
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
257 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
258
13506
c70511cf64ee Reformatted to GNU Style.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13504
diff changeset
259 void
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
260 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
261 {
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
262 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
263 emit displayed_directory_changed (dir.absolutePath ());
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
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
266 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
267 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
268 {
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
269 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
270 }
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 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
273 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
274 {
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
275 _octave_dir = dir;
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
276 if (_sync_octave_dir)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
277 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
278 }
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
279
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
280 void
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
281 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
282 {
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
283 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
284 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
285 {
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
286 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
287 {
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 _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
289 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
290 _file_system_model->setRootPath (fileInfo.absoluteFilePath ());
16437
919796a440c6 use signal for changing directory
John W. Eaton <jwe@octave.org>
parents: 16413
diff changeset
291 _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
292 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
293 process_set_current_dir(fileInfo.absoluteFilePath ());
16498
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
294
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
295 // 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
296 int index = _current_directory->findText(fileInfo.absoluteFilePath ());
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
297 if(index != -1)
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
298 {
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
299 _current_directory->removeItem(index);
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
300 }
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
301 _current_directory->insertItem(0, fileInfo.absoluteFilePath ());
605d7f0ee0d8 Added Filesdockwidget recently viewed directory pulldownlist
John Donoghue <john.donoghue@ieee.org>
parents: 16487
diff changeset
302 _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
303 }
625be3eb27c5 Current directories now synchronize on top, in the file browser and the cwd in octave.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14728
diff changeset
304 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
305 {
16555
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
306 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
307
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
308 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
309 {
04fb96f4bea1 allow double-click in file browser to load data files
John W. Eaton <jwe@octave.org>
parents: 16542
diff changeset
310 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
311 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
312 else
16562
fb8fe0ed4bbb * files-doc-widget.cc: Undo unintended changes from changeset 5fc1ce2947bd.
John W. Eaton <jwe@octave.org>
parents: 16558
diff changeset
313 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
314 }
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
315 }
13501
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
316 }
86d6c3b90ad7 Added new gui files.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
317 }
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
318
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
319 void
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
320 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
321 {
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
322 // 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
323 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
324
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
325 QString file = fileInfo.absoluteFilePath ();
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
326
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
327 QDesktopServices::openUrl (QUrl::fromLocalFile (file));
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
328 }
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
329
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
330 void
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
331 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
332 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
333
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
334 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
335
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
336 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
337 //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
338
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
339 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
340 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
341 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
342
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
343 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
344 this, SLOT(contextmenu_open(bool)));
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
345
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
346 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
347 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
348
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
349 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
350 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
351
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
352 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
353 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
354 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
355
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
356 if (info.isFile ())
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
357 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
358
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
359 if (info.isDir ())
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
360 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
361 menu.addSeparator ();
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
362 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
363 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
364 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
365 menu.addSeparator ();
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
366 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
367 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
368
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
369 menu.addSeparator();
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
370 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
371 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
372 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
373
16515
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
374 if (info.isDir())
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
375 {
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
376 menu.addSeparator();
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
377 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
378 tr ("New File"),
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
379 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
380 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
381 tr("New Directory"),
87b78e75a2b9 gui: undo disabling menu entries in context menu of file browser
Torsten <ttl@justmail.de>
parents: 16510
diff changeset
382 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
383 }
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
384
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
385 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
386
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 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
389
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
390 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
391 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
392 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
393
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
394 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
395 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
396
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
397 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
398 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
399 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
400 }
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
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
403 void
16594
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
404 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
405 {
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
406 QItemSelectionModel *m = _file_tree_view->selectionModel ();
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
407 QModelIndexList rows = m->selectedRows ();
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 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
410 open_item_in_app (*it);
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
3ce0c312a40b contextmenu for opening files in default applications
John W. Eaton <jwe@octave.org>
parents: 16570
diff changeset
413 void
16622
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
414 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
415 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
416 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
417 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
418
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
419 QStringList selection;
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
420
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
421 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
422 {
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
423 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
424
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
425 selection << info.fileName ();
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
426 }
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 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
429
38fef1e833ea handle copying names file browser to clipboard; allow multiple selections
John W. Eaton <jwe@octave.org>
parents: 16613
diff changeset
430 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
431 }
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 void
16504
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
434 files_dock_widget::contextmenu_load (bool)
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
435 {
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
436 QItemSelectionModel *m = _file_tree_view->selectionModel ();
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
437 QModelIndexList rows = m->selectedRows ();
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 if (rows.size () > 0)
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
440 {
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
441 QModelIndex index = rows[0];
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
442
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
443 QFileInfo info = _file_system_model->fileInfo(index);
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
444
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
445 emit load_file_signal (info.fileName ());
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
446 }
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
16506
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
449 void
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
450 files_dock_widget::contextmenu_run (bool)
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
451 {
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
452 QItemSelectionModel *m = _file_tree_view->selectionModel ();
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
453 QModelIndexList rows = m->selectedRows ();
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 if (rows.size () > 0)
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
456 {
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
457 QModelIndex index = rows[0];
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
458
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
459 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
460 emit run_file_signal (info);
16506
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 }
8a4960f2c7c3 gui: allow running files from the file browser
Torsten <ttl@justmail.de>
parents: 16504
diff changeset
463
16504
49b059bf27c7 allow loading files from file browser
John W. Eaton <jwe@octave.org>
parents: 16503
diff changeset
464 void
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
465 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
466 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
467 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
468 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
469 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
470 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
471 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
472
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
473 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
474 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
475 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
476 bool ok;
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
477
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
478 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
479 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
480 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
481 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
482 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
483 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
484 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
485 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
486 _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
487 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
488 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
489
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 void
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
493 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
494 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
495 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
496 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
497
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
498 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
499 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
500 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
501
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
502 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
503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
504 if(QMessageBox::question(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
505 tr("Are you sre you want to delete\n") + info.filePath(),
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
506 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
507 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
508 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
509 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
510 // 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
511 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
512 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
513
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
514 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
515 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
516 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
517 else
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
518 _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
519 }
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 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
522 _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
523 }
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->revert();
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 }
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 void
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
532 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
533 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
534 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
535 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
536
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
537 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
538 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
539 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
540
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
541 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
542 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
543
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
544 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
545 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
546 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
547
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
548 void
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
549 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
550 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
551 QItemSelectionModel *m = _file_tree_view->selectionModel ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
552 QModelIndexList rows = m->selectedRows ();
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
553
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
554 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
555 {
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
556 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
557
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
558 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
559 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
560
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
561 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
562 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
563 }
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
564
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
565 void
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
566 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
567 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
568 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
569 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
570
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
571 if(rows.size() > 0)
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
572 {
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
573 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
574
16509
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
575 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
576
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
577 if(info.isDir())
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
578 {
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
579 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
580 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
581 }
14045b872a3d Add set current directory context menu to file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16507
diff changeset
582 }
16503
c1ff738d606d allow files to be renamed or deleted using the file browser
John Donoghue <john.donoghue@ieee.org>
parents: 16499
diff changeset
583
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
584 void
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
585 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
586 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
587 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
588 QModelIndexList rows = m->selectedRows ();
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 if(rows.size() > 0)
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
591 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
592 QModelIndex index = rows[0];
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
593
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
594 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
595
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
596 if(info.isDir())
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
597 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
598 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
599 }
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 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
602
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
603 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
604 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
605 {
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
606 // 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
607
16525
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
608 int icon_size = settings->value ("toolbar_icon_size",24).toInt ();
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
609 if (icon_size > 16)
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
610 icon_size = icon_size - 4;
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
611 _navigation_tool_bar->setIconSize (QSize (icon_size,icon_size));
e192525236ad configurable size of toolbar icons
Torsten <ttl@justmail.de>
parents: 16515
diff changeset
612
16410
f62163bed4dc gui: always show file names in file dock widget
Torsten <ttl@justmail.de>
parents: 16379
diff changeset
613 // 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
614 _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
615 _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
616 _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
617 _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
618 _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
619 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
620 {
4bb1b82076e5 gui: provide defaults for all values read from the settings file
Torsten <ttl@justmail.de>
parents: 16175
diff changeset
621 // 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
622 }
16499
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
623 // 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
624 _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
625 _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
626 _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
627
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
628 if (_sync_octave_dir)
facf00ce97d3 gui: configurable synchronization between file browser and octave directory
Torsten <ttl@justmail.de>
parents: 16498
diff changeset
629 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
630
13536
869c62c15e95 Few minor improvements, added advanced settings for file browser.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13535
diff changeset
631 }
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
632
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
633 void
16613
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
634 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
635 {
16709
1070f2ca1367 fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents: 16699
diff changeset
636 QString dir = QFileDialog::getExistingDirectory
1070f2ca1367 fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents: 16699
diff changeset
637 (this, tr ("Set directory of file browser"),_file_system_model->rootPath());
1070f2ca1367 fix searching new directory for file browser
Torsten <ttl@justmail.de>
parents: 16699
diff changeset
638 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
639 }
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
640
99a57611d58a add menu for searching the next directory shown by the file browser
Torsten <ttl@justmail.de>
parents: 16611
diff changeset
641 void
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
642 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
643 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
644 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
645 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
646
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
647 void
16542
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
648 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
649 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
650 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
651 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
652
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
653 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
654 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
655 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
656 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
657 }
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
658
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
659 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
660 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
661 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
662 bool ok;
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 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
665 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
666 if(ok && name.length()>0)
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
667 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
668 name = parent_dir + "/" + name;
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 QFile file(name);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
671 file.open(QIODevice::WriteOnly);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
672 _file_system_model->revert();
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
673 }
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
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
676 void
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
677 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
678 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
679 bool ok;
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 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
682 QLineEdit::Normal, "New Directory", &ok);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
683 if(ok && name.length()>0)
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 QDir dir(parent_dir);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
686 dir.mkdir(name);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
687 _file_system_model->revert();
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
688 }
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
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
691 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
692 {
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
693 emit displayed_directory_changed (dir);
016073c0cb94 Add popdown toolbutton to files-dock-window toolbar.
John Donoghue <john.donoghue@ieee.org>
parents: 16525
diff changeset
694 }
16699
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
695
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
696 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
697 {
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
698 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
699 }
d4bcb38ad056 Added find files context menu to files-dock-widget
John Donoghue <john.donoghue@ieee.org>
parents: 16635
diff changeset
700