diff --git a/src/visualisations/projectmvisualisation.cpp b/src/visualisations/projectmvisualisation.cpp index aa771840f..687eb35cd 100644 --- a/src/visualisations/projectmvisualisation.cpp +++ b/src/visualisations/projectmvisualisation.cpp @@ -55,7 +55,7 @@ void ProjectMVisualisation::paintGL() { } void ProjectMVisualisation::resizeGL(int w, int h) { - + projectm_->projectM_resetGL(w, h); } void ProjectMVisualisation::ConsumeBuffer(GstBuffer *buffer, GstEnginePipeline*) { diff --git a/src/visualisations/visualisationcontainer.cpp b/src/visualisations/visualisationcontainer.cpp index 096f0f9de..9c3807209 100644 --- a/src/visualisations/visualisationcontainer.cpp +++ b/src/visualisations/visualisationcontainer.cpp @@ -19,6 +19,11 @@ #include "engines/gstengine.h" #include +#include + +const char* VisualisationContainer::kSettingsGroup = "Visualisations"; +const int VisualisationContainer::kDefaultWidth = 828; +const int VisualisationContainer::kDefaultHeight = 512; VisualisationContainer::VisualisationContainer(QWidget *parent) : QWidget(parent), @@ -26,13 +31,18 @@ VisualisationContainer::VisualisationContainer(QWidget *parent) vis_(new ProjectMVisualisation(this)) { setWindowTitle(tr("Clementine Visualisation")); - resize(512, 512); QHBoxLayout* layout = new QHBoxLayout(this); layout->setMargin(0); layout->setSpacing(0); layout->addWidget(vis_); setLayout(layout); + + QSettings s; + s.beginGroup(kSettingsGroup); + if (!restoreGeometry(s.value("geometry").toByteArray())) { + resize(kDefaultWidth, kDefaultHeight); + } } void VisualisationContainer::SetEngine(GstEngine* engine) { @@ -50,3 +60,9 @@ void VisualisationContainer::hideEvent(QHideEvent*) { if (engine_) engine_->RemoveBufferConsumer(vis_); } + +void VisualisationContainer::resizeEvent(QResizeEvent *) { + QSettings s; + s.beginGroup(kSettingsGroup); + s.setValue("geometry", saveGeometry()); +} diff --git a/src/visualisations/visualisationcontainer.h b/src/visualisations/visualisationcontainer.h index 042937863..6928afc3e 100644 --- a/src/visualisations/visualisationcontainer.h +++ b/src/visualisations/visualisationcontainer.h @@ -28,12 +28,17 @@ class VisualisationContainer : public QWidget { public: VisualisationContainer(QWidget* parent = 0); + static const char* kSettingsGroup; + static const int kDefaultWidth; + static const int kDefaultHeight; + void SetEngine(GstEngine* engine); protected: // QWidget void showEvent(QShowEvent*); void hideEvent(QHideEvent*); + void resizeEvent(QResizeEvent *); private: GstEngine* engine_;