diff -r 0a74be98a8bc -r 10d0dd0e43f1 controlpanelplugins/themeplugin/src/cpthemechanger_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/controlpanelplugins/themeplugin/src/cpthemechanger_p.h Fri Apr 16 14:59:22 2010 +0300 @@ -0,0 +1,94 @@ +/* +* Copyright (c) 2008-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: HbThemeChangerPrivate class definition +* +*/ + + +#ifndef HBTHEMECHANGER_P_H +#define HBTHEMECHANGER_P_H + +#include + +#include + +#include +#include +#include +#include +#include + +#include "cpthemechanger.h" + +QT_BEGIN_NAMESPACE +class QFileSystemWatcher; +QT_END_NAMESPACE + +class CpThemeClient; + +class HbThemeListModel : public QAbstractListModel +{ + Q_OBJECT + +public: + HbThemeListModel(CpThemeChangerPrivate* dd, QObject *parent = 0); + virtual ~HbThemeListModel(); + + virtual int rowCount(const QModelIndex& parent = QModelIndex()) const; + virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const; + +public slots: + void themeListChanged(); + +private: + CpThemeChangerPrivate *mThemeChangerPrivate; +}; + +class CpThemeChangerPrivate +{ + CpThemeChanger* q_ptr; + Q_DECLARE_PUBLIC(CpThemeChanger) + +public: + CpThemeChangerPrivate(CpThemeChanger* q); + ~CpThemeChangerPrivate(); + + bool connectToServer(); + bool isConnected() const; + + const QList& themes() const; + void updateThemeList(const QString& currentThemeName = QString()); + + const QStringList directories() const; + + const CpThemeChanger::ThemeInfo& currentTheme() const; + + const QString& currentThemeName() const; + bool changeTheme(const QString& newtheme); + + void _q_themeDirectoryChanged(const QString&); + + CpThemeChanger::ThemeInfo mCurrentTheme; + + QString themeRootPath; + QString themeRootPathPostfix; + + CpThemeClient* themeClient; + QFileSystemWatcher* fileWatcher; + QList themeList; + HbThemeListModel model; + friend class HbThemeChangerModel; +}; + +#endif /* HBTHEMECHANGER_P_H */