void WindowSetting::setRecorder(Recorder* recorder) { if ((recorder_ = recorder)) { mainWindow_.number_ = recorder_->recorderWindow() == Primary ? 1 : 2; mainWindow_.geometry_ = recorder_->saveGeometry(); mainWindow_.size_ = recorder_->size(); mainWindow_.pos_ = recorder_->pos(); mainWindow_.state_ = recorder_->saveState(); DisplayWindow* dw = 0; QMdiSubWindow* activeSubWindow = static_cast<QMdiArea*>( recorder_->centralWidget())->currentSubWindow(); subWindowList_ = static_cast<QMdiArea*>( recorder_->centralWidget())->subWindowList(); for (int i = 0; i < subWindowList_.size(); ++i) { dw = static_cast<DisplayWindow*>(subWindowList_[i]->widget()); subWindowKeys_ << dw->key(); if (subWindowList_[i] == activeSubWindow) activeSubWindowKey_ = dw->key(); subWindows_[i].key_ = dw->key(); subWindows_[i].geometry_ = subWindowList_[i]->saveGeometry(); subWindows_[i].size_ = subWindowList_[i]->size(); subWindows_[i].pos_ = subWindowList_[i]->pos(); } } }