/*
    Copyright 2007-2008 by Robert Knight <robertknight@gmail.com>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    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 General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301  USA.
*/

// Own
#include "ViewProperties.h"

using Konsole::ViewProperties;

QHash<int, ViewProperties *> ViewProperties::_viewProperties;

ViewProperties::ViewProperties(QObject *parent) :
    QObject(parent),
    _icon(QIcon()),
    _title(QString()),
    _identifier(0)
{
}

ViewProperties::~ViewProperties()
{
    _viewProperties.remove(_identifier);
}

ViewProperties *ViewProperties::propertiesById(int id)
{
    return _viewProperties[id];
}

QUrl ViewProperties::url() const
{
    return QUrl();
}

QString ViewProperties::currentDir() const
{
    return QString();
}

void ViewProperties::fireActivity()
{
    emit activity(this);
}

void ViewProperties::rename()
{
}

void ViewProperties::setTitle(const QString &title)
{
    if (title != _title) {
        _title = title;
        emit titleChanged(this);
    }
}

void ViewProperties::setIcon(const QIcon &icon)
{
    // the icon's cache key is used to determine whether this icon is the same
    // as the old one.  if so no signal is emitted.

    if (icon.cacheKey() != _icon.cacheKey()) {
        _icon = icon;
        emit iconChanged(this);
    }
}

void ViewProperties::setColor(const QColor &color)
{
    if (color != _color) {
        _color = color;
        emit colorChanged(this);
    }
}

void ViewProperties::setIdentifier(int id)
{
    if (_viewProperties.contains(_identifier)) {
        _viewProperties.remove(_identifier);
    }

    _identifier = id;

    _viewProperties.insert(id, this);
}

QString ViewProperties::title() const
{
    return _title;
}

QIcon ViewProperties::icon() const
{
    return _icon;
}

int ViewProperties::identifier() const
{
    return _identifier;
}

QColor ViewProperties::color() const
{
    return _color;
}
