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
         {