Skip to content
Snippets Groups Projects
Commit e1dc0d0b authored by Joseph Mirabel's avatar Joseph Mirabel Committed by Joseph Mirabel
Browse files

Save history of PythonQt console

parent 4d46abc2
No related branches found
No related tags found
No related merge requests found
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <QDockWidget> #include <QDockWidget>
#include <QLayout> #include <QLayout>
#include <QPushButton> #include <QPushButton>
#include <QSettings>
class PythonQtObjectPtr; class PythonQtObjectPtr;
class PythonQtScriptingConsole; class PythonQtScriptingConsole;
...@@ -98,6 +99,9 @@ namespace gepetto { ...@@ -98,6 +99,9 @@ namespace gepetto {
const QVariantList& args = QVariantList(), const QVariantList& args = QVariantList(),
const QVariantMap& kwargs = QVariantMap()) const; const QVariantMap& kwargs = QVariantMap()) const;
void saveHistory (QSettings& settings);
void restoreHistory (QSettings& settings);
public slots: public slots:
/// Load a plugin by importing a module /// Load a plugin by importing a module
/// ///
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <QAction> #include <QAction>
#include <QFileDialog> #include <QFileDialog>
#include <QSettings>
#include <PythonQt.h> #include <PythonQt.h>
#include <PythonQt_QtAll.h> #include <PythonQt_QtAll.h>
#include <gui/PythonQtScriptingConsole.h> #include <gui/PythonQtScriptingConsole.h>
...@@ -119,6 +120,32 @@ namespace gepetto { ...@@ -119,6 +120,32 @@ namespace gepetto {
fd->deleteLater(); fd->deleteLater();
} }
void PythonWidget::saveHistory (QSettings& settings)
{
settings.beginGroup("pythonqt");
QStringList history = console_->history ();
int limit = 200;
int start = std::max(history.length() - limit, 0);
QList<QVariant> h;
foreach (QString s, history.mid(start)) {
h << s;
}
settings.setValue("history", h);
settings.endGroup();
}
void PythonWidget::restoreHistory (QSettings& settings)
{
settings.beginGroup("pythonqt");
QList<QVariant> h = settings.value("history").toList();
QStringList history;
foreach(QVariant v, h) {
history << v.toString();
}
console_->setHistory (history);
settings.endGroup();
}
void PythonWidget::loadScriptPlugin(QString moduleName, QString fileName) void PythonWidget::loadScriptPlugin(QString moduleName, QString fileName)
{ {
PythonQt* pqt = PythonQt::self(); PythonQt* pqt = PythonQt::self();
......
...@@ -212,6 +212,9 @@ namespace gepetto { ...@@ -212,6 +212,9 @@ namespace gepetto {
mw->restoreState (settings.value("state").toByteArray()); mw->restoreState (settings.value("state").toByteArray());
mw->centralWidget()->setVisible (settings.value("centralWidgetVisibility", true).toBool()); mw->centralWidget()->setVisible (settings.value("centralWidgetVisibility", true).toBool());
settings.endGroup(); settings.endGroup();
#if GEPETTO_GUI_HAS_PYTHONQT
mw->pythonWidget()->restoreHistory(settings);
#endif
} }
} }
...@@ -228,6 +231,9 @@ namespace gepetto { ...@@ -228,6 +231,9 @@ namespace gepetto {
settings.setValue("state" , mw->saveState()); settings.setValue("state" , mw->saveState());
settings.setValue("centralWidgetVisibility", mw->centralWidget()->isVisible ()); settings.setValue("centralWidgetVisibility", mw->centralWidget()->isVisible ());
settings.endGroup(); settings.endGroup();
#if GEPETTO_GUI_HAS_PYTHONQT
mw->pythonWidget()->saveHistory(settings);
#endif
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment