Mercurial > hg > octave-nkf
changeset 13519:35ecb6063c7b
Made the view connect with the history model.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Tue, 19 Jul 2011 16:14:14 +0200 |
parents | bace956a3724 |
children | 17bb8974577b |
files | gui/src/OctaveLink.cpp gui/src/OctaveLink.h |
diffstat | 2 files changed, 14 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/gui/src/OctaveLink.cpp +++ b/gui/src/OctaveLink.cpp @@ -28,10 +28,9 @@ OctaveLink::m_singleton; -OctaveLink::OctaveLink ():QObject (), m_previousHistoryLength (0) +OctaveLink::OctaveLink ():QObject () { m_symbolTableSemaphore = new QSemaphore (1); - m_historySemaphore = new QSemaphore (1); m_historyModel = new QStringListModel (this); } @@ -136,22 +135,21 @@ void OctaveLink::updateHistoryModel () { - // TODO: Use the following code to update the history model. - /* - int currentLen = command_history::length (); - if (currentLen != m_previousHistoryLength) + // Determine the client's (our) history length and the one of the server. + int clientHistoryLength = m_history.length (); + int serverHistoryLength = command_history::length (); + + // If were behind the server, iterate through all new entries and add them to our history. + if (clientHistoryLength < serverHistoryLength) { - m_historySemaphore->acquire (); - for (int i = m_previousHistoryLength; i < currentLen; i++) + for (int i = clientHistoryLength; i < serverHistoryLength; i++) { - QString entry = QString(command_history::get_entry (i).c_str()); - if (!entry.startsWith ("#")) - m_historyBuffer.append (entry); + m_history.insert (0, QString (command_history::get_entry (i).c_str ())); } - m_historySemaphore->release (); - m_previousHistoryLength = currentLen; } - */ + + // Update the model by setting the new history. + m_historyModel->setStringList (m_history); } QStringListModel *
--- a/gui/src/OctaveLink.h +++ b/gui/src/OctaveLink.h @@ -138,9 +138,8 @@ /** History related member variables. */ QStringListModel *m_historyModel; - QSemaphore *m_historySemaphore; - QStringList m_historyBuffer; - int m_previousHistoryLength; + QStringList m_history; + static OctaveLink m_singleton; }; #endif // OCTAVELINK_H