controlpanelplugins/themeplugin/src/cpthemecontrol.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:32:06 +0300
changeset 12 624337f114fe
parent 11 10d0dd0e43f1
child 14 23411a3be0db
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0""
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description:  
 *   
 */

#ifndef CPTHEMECONTROL_H
#define CPTHEMECONTROL_H

#include <QObject>
#include <QList>

#include "cpthemechanger.h"
#include <hbicon.h>

QT_BEGIN_NAMESPACE
class QModelIndex;
class QString;
class QSortFilterProxyModel;
QT_END_NAMESPACE

class CpThemeListView;
class CpThemePreview;
class CpBaseSettingView;



class CpThemeControl : public QObject
{
    Q_OBJECT

public:
    CpThemeControl();
    ~CpThemeControl();
    CpBaseSettingView* themeListView();
    QString currentThemeName() const;
    HbIcon currentThemeIcon() const;

signals:
    void themeUpdated(const QString& themeName, const HbIcon& icon);

public slots:
    void newThemeSelected(const QModelIndex& index);
    void previewClosed();
    void themeApplied(const QString& theme);
    void themeListClosed();

private:
    void createThemeList();
    void triggerThemeListClose();
    void setActiveThemeIndex();

private:
    CpThemeListView* mThemeListView;
    CpThemePreview* mThemePreview;
    CpThemeChanger* mThemeChanger;
    QAbstractItemModel* mListModel;
    QSortFilterProxyModel* mSortModel;
};

#endif //CPTHEMECONTROL_H