installEventFilter(new JumpKeyHandler(this));
QtUiApplication* app = qobject_cast<QtUiApplication*> qApp;
- connect(app, SIGNAL(saveStateToSession(const QString&)), SLOT(saveStateToSession(const QString&)));
- connect(app, SIGNAL(saveStateToSessionSettings(SessionSettings&)), SLOT(saveStateToSessionSettings(SessionSettings&)));
connect(app, SIGNAL(aboutToQuit()), SLOT(aboutToQuit()));
}
}
void MainWin::restoreStateFromSettings(UiSettings &s) {
+ _normalSize = s.value("MainWinSize", size()).toSize();
+ _normalPos = s.value("MainWinPos", pos()).toPoint();
+
restoreGeometry(s.value("MainWinGeometry").toByteArray());
if(isMaximized()) {
// restoreGeometry() fails if the windows was maximized, so we resize and position explicitly
- resize(s.value("MainWinSize", QSize(800, 500)).toSize());
- move(s.value("MainWinPos").toPoint());
+ resize(_normalSize);
+ move(_normalPos);
}
restoreState(s.value("MainWinState").toByteArray());
if(!(windowState() & Qt::WindowMaximized))
_normalPos = event->pos();
- event->ignore();
+ QMainWindow::moveEvent(event);
}
void MainWin::resizeEvent(QResizeEvent *event) {
if(!(windowState() & Qt::WindowMaximized))
_normalSize = event->size();
- event->ignore();
+ QMainWindow::resizeEvent(event);
}
void MainWin::closeEvent(QCloseEvent *event) {
QtUiSettings s;
QtUiApplication* app = qobject_cast<QtUiApplication*> qApp;
Q_ASSERT(app);
- if(!app->aboutToQuit() && s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) {
- toggleMinimizedToTray();
+ if(!app->isAboutToQuit() && s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) {
+ hideToTray();
event->ignore();
} else {
event->accept();
logWidget->show();
}
-// FIXME
-void MainWin::saveStateToSession(const QString &sessionId) {
- return;
- SessionSettings s(sessionId);
-
- s.setValue("MainWinSize", size());
- s.setValue("MainWinPos", pos());
- s.setValue("MainWinState", saveState());
-}
-
-// FIXME
-void MainWin::saveStateToSessionSettings(SessionSettings & s)
-{
- s.setValue("MainWinSize", size());
- s.setValue("MainWinPos", pos());
- s.setValue("MainWinState", saveState());
-}
-
void MainWin::showStatusBarMessage(const QString &message) {
statusBar()->showMessage(message, 10000);
}
void QtUiApplication::saveState(QSessionManager & manager) {
//qDebug() << QString("saving session state to id %1").arg(manager.sessionId());
- AccountId activeCore = Client::currentCoreAccount();
+ AccountId activeCore = Client::currentCoreAccount(); // FIXME store this!
SessionSettings s(manager.sessionId());
s.setSessionAge(0);
- emit saveStateToSession(manager.sessionId());
- emit saveStateToSessionSettings(s);
+ QtUi::mainWindow()->saveStateToSettings(s);
}
void QtUiApplication::resumeSessionIfPossible() {
SessionSettings s(sessionId());
s.sessionAging();
s.setSessionAge(0);
- emit resumeFromSession(sessionId());
- emit resumeFromSessionSettings(s);
+ QtUi::mainWindow()->restoreStateFromSettings(s);
s.cleanup();
} else {
SessionSettings s(QString("1"));
virtual void commitData(QSessionManager &manager);
virtual void saveState(QSessionManager &manager);
- inline bool aboutToQuit() const { return _aboutToQuit; }
-
-signals:
- void saveStateToSession(const QString &sessionId);
- void saveStateToSessionSettings(SessionSettings &s); // FIXME refs in signals won't probably work
- void resumeFromSession(const QString sessionId);
- void resumeFromSessionSettings(SessionSettings &s);
+ inline bool isAboutToQuit() const { return _aboutToQuit; }
private:
bool _aboutToQuit;