Mercurial > hg > octave-nkf
diff libgui/src/files-dockwidget.cc @ 16437:919796a440c6
use signal for changing directory
* files-dockwidget.cc (files_dock_widget::files_dock_widget):
Set title to "File Browser", not "Current Directory".
* files-dockwidget.h, files-dockwidget.cc
(files_dock_widget::change_directory_up): Rename from
files_dock_widget::do_up_directory. Change all uses.
(files_dock_widget::_last_current_directory): Delete variable and all
uses.
(files_dock_widget::accept_directory_line_edit): Rename from
handle_directory_entered. Change all uses.
(files_dock_widget::item_double_clicked): Call set_current_directory
instead of display_directory.
(files_dock_widget::set_current_directory): Also emit
displayed_directory_changed signal.
(files_dock_widget::display_directory): Sort list. Don't emit
displayed_directory_changed.
private:
* file-editor-tab.cc (file_editor_tab::run_file): Delete unused local
variable current_path.
* main-window.h, main-window.cc
(main_window::current_working_directory_has_changed): Delete function
and all uses.
(main_window::browse_for_directory): Rename from
main_window::change_current_working_directory. Change all uses.
(main_window::change_directory): Rename from
main_window::set_current_working_directory. Change all uses. Update
display.
(main_window::change_directory_up): Rename from
main_window::current_working_directory_up. Change all uses. Use
absolute path for ".." directory.
(main_window::accept_directory_line_edit): Rename from
main_window::current_working_directory_entered. Change all uses.
(main_window::construct): Set initial working directory to current
directory at startup.
* octave-qt-link.h, octave-qt-link.cc
(octave_qt_link::do_change_directory): New function.
(octave_qt_link::change_directory_signal): New signal.
* octave-event-listener.h
(octave_event_listener::current_directory_has_changed): Delete.
* dirfns.cc (octave_change_to_directory): Also call
octave_link::change_directory.
* octave-link.h, octave-link.cc (octave_link::last_cwd): Delete
variable and all uses.
(octave_link::do_generate_events): Don't track current directory or
post directory changed event.
(octave_link::last_working_directory,
octave_link::do_last_working_directory): Delete.
(octave_link::do_change_directory): Rename from
octave_link::do_last_working_directory.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 05 Apr 2013 00:40:12 -0400 |
parents | 28136851099a |
children | 3207f1d62e74 |
line wrap: on
line diff
--- a/libgui/src/files-dockwidget.cc +++ b/libgui/src/files-dockwidget.cc @@ -40,7 +40,7 @@ { setObjectName ("FilesDockWidget"); setWindowIcon (QIcon(":/actions/icons/logo.png")); - setWindowTitle (tr ("Current Directory")); + setWindowTitle (tr ("File Browser")); setWidget (new QWidget (this)); // Create a toolbar @@ -53,14 +53,13 @@ _directory_up_action = new QAction (_directory_icon, "", _navigation_tool_bar); _directory_up_action->setStatusTip (tr ("Move up one directory.")); - _last_current_directory = ""; _current_directory = new QLineEdit (_navigation_tool_bar); _current_directory->setStatusTip (tr ("Enter the path or filename.")); _navigation_tool_bar->addAction (_directory_up_action); _navigation_tool_bar->addWidget (_current_directory); connect (_directory_up_action, SIGNAL (triggered ()), this, - SLOT (do_up_directory ())); + SLOT (change_directory_up ())); // TODO: Add other buttons for creating directories @@ -105,7 +104,7 @@ // TODO: Add right-click contextual menus for copying, pasting, deleting files (and others) connect (_current_directory, SIGNAL (returnPressed ()), - this, SLOT (handle_directory_entered ())); + this, SLOT (accept_directory_line_edit ())); QCompleter * completer = new QCompleter (_file_system_model, this); @@ -126,27 +125,30 @@ } void -files_dock_widget::item_double_clicked (const QModelIndex & index) +files_dock_widget::item_double_clicked (const QModelIndex& index) { // Retrieve the file info associated with the model index. QFileInfo fileInfo = _file_system_model->fileInfo (index); - display_directory (fileInfo.absoluteFilePath ()); + + set_current_directory (fileInfo.absoluteFilePath ()); } void -files_dock_widget::set_current_directory (const QString& currentDirectory) +files_dock_widget::set_current_directory (const QString& dir) { - display_directory (currentDirectory); + display_directory (dir); + + emit displayed_directory_changed (dir); } void -files_dock_widget::handle_directory_entered () +files_dock_widget::accept_directory_line_edit (void) { display_directory (_current_directory->text ()); } void -files_dock_widget::do_up_directory () +files_dock_widget::change_directory_up (void) { QDir dir = QDir (_file_system_model->filePath (_file_tree_view->rootIndex ())); dir.cdUp (); @@ -154,9 +156,9 @@ } void -files_dock_widget::display_directory (const QString& directory) +files_dock_widget::display_directory (const QString& dir) { - QFileInfo fileInfo (directory); + QFileInfo fileInfo (dir); if (fileInfo.exists ()) { if (fileInfo.isDir ()) @@ -164,14 +166,8 @@ _file_tree_view->setRootIndex (_file_system_model-> index (fileInfo.absoluteFilePath ())); _file_system_model->setRootPath (fileInfo.absoluteFilePath ()); + _file_system_model->sort (0, Qt::AscendingOrder); _current_directory->setText (fileInfo.absoluteFilePath ()); - - if (_last_current_directory != fileInfo.absoluteFilePath ()) - { - emit displayed_directory_changed (fileInfo.absoluteFilePath ()); - } - - _last_current_directory = fileInfo.absoluteFilePath (); } else {