void QMainWindowProto::saveState ( int version) const { QMainWindow *item = qscriptvalue_cast<QMainWindow*>(thisObject()); if (item) { QByteArray state = item->saveState(version); xtsettingsSetValue(item->objectName() + "/WindowState", state); } }
bool QMainWindowProto::restoreState ( int version ) { QMainWindow *item = qscriptvalue_cast<QMainWindow*>(thisObject()); if (item) { QByteArray state; state = xtsettingsValue(item->objectName() + "/WindowState", QByteArray()).toByteArray(); return item->restoreState(state, version); } return false; }
void DocumentManager::add(DocumentInfo *documentInfo) { QMainWindow *mainWindow = documentInfo->mainWindow; d->documentInfos.append(documentInfo); connect(mainWindow, SIGNAL(destroyed(QObject *)), this, SLOT(remove(QObject *))); // update object name ("window ID") mainWindow->setObjectName(mainWindow->objectName() + QString::number(d->nextWindowId)); mainWindow->installEventFilter(this); /*!\todo This gets messy: make DocumentInfo a proper class. */ documentInfo->id = d->nextWindowId; ++d->nextWindowId; documentInfo->windowTitle = tr("New %1", "New document title + ID").arg(d->nextWindowId); QAction *action = new QAction(d->windowActionGroup); action->setCheckable(true); action->setData(documentInfo->id); action->setText(documentInfo->windowTitle); d->windowMapper.setMapping(action, documentInfo->id); connect(action, SIGNAL(triggered()), &d->windowMapper, SLOT(map())); emit changed(); }