Mercurial > hg > octave-nkf
comparison libgui/src/octave-qt-link.cc @ 20342:d7bea5b11fc3
only update file browser and dir selection box when on top-level (bug #44622)
* main-window.cc (change_directory_callback): call function for updating gui
* octave-qt-link.cc (octave_qt_link): init new variables
_current_directory and _new_dir;
(do_change_directory): only store current dir and new state, no gui update;
(update_directory): new function updating gui and clearing new dir state;
(do_set_workspace): when on top level and new dir state, update gui
* octave-qt-link.h: new update function, new variables for dir and state
author | Torsten <ttl@justmail.de> |
---|---|
date | Sat, 25 Apr 2015 19:43:27 +0200 |
parents | c36f2b083613 |
children | 46fb763e5f3a |
comparison
equal
deleted
inserted
replaced
20341:0d56160e346d | 20342:d7bea5b11fc3 |
---|---|
45 | 45 |
46 octave_qt_link::octave_qt_link (QWidget *p) | 46 octave_qt_link::octave_qt_link (QWidget *p) |
47 : octave_link (), main_thread (new QThread ()), | 47 : octave_link (), main_thread (new QThread ()), |
48 command_interpreter (new octave_interpreter ()) | 48 command_interpreter (new octave_interpreter ()) |
49 { | 49 { |
50 _current_directory = ""; | |
51 _new_dir = true; | |
52 | |
50 connect (this, SIGNAL (execute_interpreter_signal (void)), | 53 connect (this, SIGNAL (execute_interpreter_signal (void)), |
51 command_interpreter, SLOT (execute (void))); | 54 command_interpreter, SLOT (execute (void))); |
52 | 55 |
53 connect (command_interpreter, SIGNAL (octave_ready_signal ()), | 56 connect (command_interpreter, SIGNAL (octave_ready_signal ()), |
54 p, SLOT (handle_octave_ready ())); | 57 p, SLOT (handle_octave_ready ())); |
429 } | 432 } |
430 | 433 |
431 void | 434 void |
432 octave_qt_link::do_change_directory (const std::string& dir) | 435 octave_qt_link::do_change_directory (const std::string& dir) |
433 { | 436 { |
434 emit change_directory_signal (QString::fromStdString (dir)); | 437 _current_directory = QString::fromStdString (dir); |
438 _new_dir = true; | |
439 } | |
440 | |
441 void | |
442 octave_qt_link::update_directory () | |
443 { | |
444 emit change_directory_signal (_current_directory); | |
445 _new_dir = false; | |
435 } | 446 } |
436 | 447 |
437 void | 448 void |
438 octave_qt_link::do_execute_command_in_terminal (const std::string& command) | 449 octave_qt_link::do_execute_command_in_terminal (const std::string& command) |
439 { | 450 { |
444 octave_qt_link::do_set_workspace (bool top_level, bool debug, | 455 octave_qt_link::do_set_workspace (bool top_level, bool debug, |
445 const std::list<workspace_element>& ws) | 456 const std::list<workspace_element>& ws) |
446 { | 457 { |
447 if (! top_level && ! debug) | 458 if (! top_level && ! debug) |
448 return; | 459 return; |
460 | |
461 if (_new_dir) | |
462 update_directory (); | |
449 | 463 |
450 QString scopes; | 464 QString scopes; |
451 QStringList symbols; | 465 QStringList symbols; |
452 QStringList class_names; | 466 QStringList class_names; |
453 QStringList dimensions; | 467 QStringList dimensions; |