/*
* Copyright 2015 Canonical Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*/
#include "windowstatestorage.h"
#include
WindowStateStorage::WindowStateStorage(QObject *parent):
QObject(parent)
{
}
void WindowStateStorage::setGeometry(const QVariantMap& geometry)
{
if (geometry != m_geometry) {
m_geometry = geometry;
Q_EMIT geometryChanged(m_geometry);
}
}
QVariantMap WindowStateStorage::geometry() const
{
return m_geometry;
}
void WindowStateStorage::saveGeometry(const QString &windowId, const QRect &rect)
{
m_geometry[windowId] = rect;
}
QRect WindowStateStorage::getGeometry(const QString &windowId, const QRect &defaultValue) const
{
if (!m_geometry.contains(windowId)) return defaultValue;
return m_geometry.value(windowId).toRect();
}
void WindowStateStorage::saveStage(const QString &appId, int stage)
{
m_stage[appId] = stage;
Q_EMIT stageSaved(appId, stage);
}
int WindowStateStorage::getStage(const QString &appId, int defaultValue) const
{
return m_stage.value(appId, defaultValue);
}
void WindowStateStorage::clear()
{
m_state.clear();
m_geometry.clear();
m_stage.clear();
}
void WindowStateStorage::saveState(const QString &windowId, WindowState state)
{
m_state[windowId] = state;
}
WindowStateStorage::WindowState WindowStateStorage::getState(const QString &windowId, WindowStateStorage::WindowState defaultValue) const
{
if (!m_state.contains(windowId)) return defaultValue;
return m_state.value(windowId);
}