clock/clockui/clockalarmeditor/inc/clockalarmeditor.h
author hgs
Mon, 28 Jun 2010 15:22:02 +0530
changeset 45 b6db4fd4947b
parent 18 c198609911f9
child 57 bb2d3e476f29
permissions -rw-r--r--
201025

/*
* 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:
* Header file for class Clock AlarmEditor.
*
*/

#ifndef CLOCKALARMEDITOR_H
#define CLOCKALARMEDITOR_H

// System includes
#include <QObject>
#include <QPointer>
#include <HbView>

// User includes
#include "clockalarmeditordefines.h"
#include "clockdatatypes.h"

// Forward declarations
class QGraphicsWidget;
class HbDataForm;
class HbDataFormModel;
class HbDataFormModelItem;
class HbAction;
class HbDateTimePicker;
class HbDialog;
class HbTranslator;
class XQSettingsManager;
class XQSettingsKey;
class AlarmClient;
class TimezoneClient;
class ClockAlarmCustomItem;


class ClockAlarmEditor : public QObject
{
	Q_OBJECT

public:
	CLOCKALARMEDITOR_EXPORT ClockAlarmEditor(
			AlarmClient& alarmClient,
			int alarmId = 0,
			QObject *parent = 0);
	CLOCKALARMEDITOR_EXPORT virtual ~ClockAlarmEditor();

public:
	CLOCKALARMEDITOR_EXPORT void showAlarmEditor();

public slots:
	void handleDoneAction();
	void handleDeleteAction();
	void handleDiscardAction();
	void handleTimeChange(const QString &text);
	void handleOccurenceChanged(int index);
	void handleOkAction();
	void launchTimePicker();
	void handleAlarmSoundChanged(int checkedState);
	void selectedAction(HbAction *action);

signals:
	void alarmSet();

private:
	void initModel();
	void populateModelItems();
	void initAlarmInfo();
	void createToolbar();
	void setAlarm(
			QString timeInfo, QString descInfo, int repeatType,
			int alarmDayIndex);
	QTime getPreviousAlarmTime();
	void setPreviosAlarmTime(QTime time);
	void closeAlarmEditor();
	void displayDSTRollOverNote(AlarmInfo& alarmInfo);
	void displayRemainingTimeNote(AlarmInfo& alarmInfo);
	void getDayText(int alarmDay,QString& dayText);
	int getRemainingSeconds(QDateTime& alarmDateTime);
	void launchDialog(QString title, QString text = 0);
    void sortAlarmDaysList(QStringList& alarmDays);

private:
	int mAlarmId;
	int mStartOfWeek;
	bool mAlarmDayItemInserted;
	QString mTimeFormat;

	HbDataForm *mAlarmEditorForm;
	HbDataFormModel *mAlarmEditorModel;
	HbDataFormModelItem *mAlarmTimeItem;
	HbDataFormModelItem *mAlarmOccurenceItem;
	HbDataFormModelItem *mAlarmDayItem;
	HbDataFormModelItem *mAlarmSoundItem;
	HbDataFormModelItem *mAlarmDescription;

	HbView *mAlarmEditorView;
	HbAction *mDiscardAction;
	HbAction *mDeleteAction;
	HbAction *mDoneAction;
	HbAction *mOkAction;
	HbAction *mCancelAction;

	QPointer<HbDialog> mTimePickerDialog;

	XQSettingsManager *mSettingsManager;
	XQSettingsKey *mPreviosAlarmTime;

	AlarmClient &mAlarmClient;
	AlarmInfo mAlarmInfo;
	TimezoneClient *mTimezoneClient;
	HbTranslator *mTranslator;
};

#endif // CLOCKALARMEDITOR_H

// End of file	--Don't remove this.