diff --git a/doomsday/client/include/ui/widgets/consolewidget.h b/doomsday/client/include/ui/widgets/consolewidget.h index bf9c6c9cf3..1903d9cbe2 100644 --- a/doomsday/client/include/ui/widgets/consolewidget.h +++ b/doomsday/client/include/ui/widgets/consolewidget.h @@ -23,6 +23,7 @@ #include #include #include +#include #include "consolecommandwidget.h" @@ -34,7 +35,7 @@ * * @ingroup gui */ -class ConsoleWidget : public de::GuiWidget +class ConsoleWidget : public de::GuiWidget, public de::IPersistent { Q_OBJECT @@ -63,6 +64,10 @@ class ConsoleWidget : public de::GuiWidget void update(); bool handleEvent(de::Event const &event); + // Implements IPersistent. + void operator >> (de::PersistentState &toState) const; + void operator << (de::PersistentState const &fromState); + signals: void commandModeChanged(); void commandLineGotFocus(); diff --git a/doomsday/client/src/ui/widgets/consolewidget.cpp b/doomsday/client/src/ui/widgets/consolewidget.cpp index ee0488b6e1..b3227acb57 100644 --- a/doomsday/client/src/ui/widgets/consolewidget.cpp +++ b/doomsday/client/src/ui/widgets/consolewidget.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include using namespace de; @@ -422,6 +423,22 @@ bool ConsoleWidget::handleEvent(Event const &event) return false; } +void ConsoleWidget::operator >> (PersistentState &toState) const +{ + toState.names().set("console.width", d->width->value()); +} + +void ConsoleWidget::operator << (PersistentState const &fromState) +{ + d->width->set(fromState.names()["console.width"]); + + if(!d->opened) + { + // Make sure it stays out of the view. + d->horizShift->set(-rule().width().valuei() - 1); + } +} + void ConsoleWidget::openLog() { if(d->opened) return;