UserMetrics.h
QtCore/QString
QtGui/QColor
QtCore/QAbstractItemModel
libusermetricsoutput/ColorTheme.h
libusermetricsoutput/ColorTheme.h
UserMetrics.h
QtCore/QAbstractItemModel
QtCore/QObject
QtCore/QString
QtGui/QColor
UserMetricsOutput::UserMetrics
UserMetricsOutput

    /*
    *Copyright(C)2013Canonical,Ltd.
    *
    *Thislibraryisfreesoftware;youcanredistributeitand/ormodifyitunder
    *thetermsofversion3oftheGNULesserGeneralPublicLicenseaspublished
    *bytheFreeSoftwareFoundation.
    *
    *Thislibraryisdistributedinthehopethatitwillbeuseful,butWITHOUT
    *ANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYorFITNESS
    *FORAPARTICULARPURPOSE.SeetheGNULesserGeneralPublicLicenseformore
    *details.
    *
    *YoushouldhavereceivedacopyoftheGNULesserGeneralPublicLicense
    *alongwiththisprogram.Ifnot,see<http://www.gnu.org/licenses/>.
    *
    *Author:PeteWoods<pete.woods@canonical.com>
    */

    #ifndefUSERMETRICSOUTPUT_USERMETRICS_H_
    #defineUSERMETRICSOUTPUT_USERMETRICS_H_

    #include<QtCore/QString>
    #include<QtGui/QColor>
    #include<QtCore/QAbstractItemModel>

    #include<libusermetricsoutput/ColorTheme.h>

    namespaceUserMetricsOutput{

    classQ_DECL_EXPORTUserMetrics:publicQObject{
    Q_OBJECT

    Q_PROPERTY(QStringlabelREADlabelNOTIFYlabelChangedFINAL)

    Q_PROPERTY(QStringusernameREADusernameWRITEsetUsernameNOTIFYusernameChangedFINAL)

    Q_PROPERTY(UserMetricsOutput::ColorTheme*firstColorREADfirstColorNOTIFYfirstColorChangedFINAL)

    Q_PROPERTY(UserMetricsOutput::ColorTheme*secondColorREADsecondColorNOTIFYsecondColorChangedFINAL)

    Q_PROPERTY(QAbstractItemModel*firstMonthREADfirstMonthNOTIFYfirstMonthChangedFINAL)

    Q_PROPERTY(QAbstractItemModel*secondMonthREADsecondMonthNOTIFYsecondMonthChangedFINAL)

    Q_PROPERTY(intcurrentDayREADcurrentDayNOTIFYcurrentDayChangedFINAL)

    public:
    staticUserMetrics*getInstance();

    virtual~UserMetrics();

    virtualQStringlabel()const=0;

    virtualQStringusername()const=0;

    virtualvoidsetUsername(constQString&username)=0;

    virtualColorTheme*firstColor()const=0;

    virtualQAbstractItemModel*firstMonth()const=0;

    virtualintcurrentDay()const=0;

    virtualColorTheme*secondColor()const=0;

    virtualQAbstractItemModel*secondMonth()const=0;

    Q_SIGNALS:
    voidlabelChanged(constQString&label);

    voidusernameChanged(constQString&username);

    voidfirstColorChanged(ColorTheme*color);

    voidfirstMonthChanged(QAbstractItemModel*firstMonth);

    voidcurrentDayChanged(intcurrentDay);

    voidsecondColorChanged(ColorTheme*color);

    voidsecondMonthChanged(QAbstractItemModel*secondMonth);

    voidnextDataSource();

    voidreadyForDataChange();

    voiddataAboutToAppear();

    voiddataAppeared();

    voiddataAboutToChange();

    voiddataChanged();

    voiddataAboutToDisappear();

    voiddataDisappeared();

    publicQ_SLOTS:
    virtualvoidnextDataSourceSlot()=0;

    virtualvoidreadyForDataChangeSlot()=0;

    protected:
    explicitUserMetrics(QObject*parent=0);

    Q_DISABLE_COPY(UserMetrics)

    };

    }

    #endif//USERMETRICSOUTPUT_USERMETRICS_H_