--- a/clock/clockui/clockwidget/clockwidgetimpl/src/clockwidget.cpp Wed Jun 23 18:11:28 2010 +0300
+++ b/clock/clockui/clockwidget/clockwidgetimpl/src/clockwidget.cpp Tue Jul 06 14:14:56 2010 +0300
@@ -21,6 +21,7 @@
// User includes
#include "clockwidget.h"
#include "analogclockwidget.h"
+#include "digitalclockwidget.h"
/*!
\class ClockWidget
@@ -33,7 +34,7 @@
*/
ClockWidget::ClockWidget(QGraphicsItem *parent, Qt::WindowFlags flags)
: HbWidget(parent, flags),
- mClockType(ClockTypeAnalog)
+ mClockType(ClockTypeDigital)
{
loadClockWidget();
}
@@ -59,10 +60,16 @@
*/
void ClockWidget::setClockType(const ClockType &type)
{
- if (type == ClockTypeDigital) {
- mClockType = ClockTypeDigital;
+ if (type == ClockTypeAnalog) {
+ if(type != mClockType){
+ mClockType = ClockTypeAnalog;
+ updateClockWidget();
+ }
} else {
- mClockType = ClockTypeAnalog;
+ if(type != mClockType){
+ mClockType = ClockTypeDigital;
+ updateClockWidget();
+ }
}
}
@@ -73,6 +80,8 @@
{
if (mClockType == ClockTypeAnalog) {
mAnalogClock->tick();
+ } else {
+ mDigitalClock->updatePrimitives();
}
}
@@ -81,13 +90,57 @@
*/
void ClockWidget::loadClockWidget()
{
+ mLayout = new QGraphicsLinearLayout(Qt::Vertical);
+ mLayout->setContentsMargins(0,0,0,0);
+
if (mClockType == ClockTypeAnalog) {
- mAnalogClock = new AnalogClockWidget(this);
- mLayout = new QGraphicsLinearLayout(Qt::Vertical);
- mLayout->setContentsMargins(0,0,0,0);
+ mAnalogClock = new AnalogClockWidget(this);
+ mLayout->addItem(mAnalogClock);
+ } else {
+ bool useAmPm = false;
+ mDigitalClock = new DigitalClockWidget(useAmPm, this);
+ mLayout->addItem(mDigitalClock);
+ }
+ setLayout(mLayout);
+}
+
+/*!
+ Constructs the clockwidget based upon its type.
+*/
+void ClockWidget::updateClockWidget()
+{
+ if (mClockType == ClockTypeAnalog) {
+ mLayout->removeItem(mDigitalClock);
+ delete mDigitalClock;
+ if (!mAnalogClock) {
+ mAnalogClock = new AnalogClockWidget(this);
+ }
mLayout->addItem(mAnalogClock);
- setLayout(mLayout);
+ } else {
+ mLayout->removeItem(mAnalogClock);
+ delete mAnalogClock;
+ if(!mDigitalClock){
+ bool useAmPm = false; // find out this fronm the settings utility
+ mDigitalClock = new DigitalClockWidget(useAmPm, this);
+ }
+ mLayout->addItem(mDigitalClock);
+ }
+}
+
+ClockWidget::TimeFormat ClockWidget::timeFormat() const
+{
+ return mTimeFormat;
+}
+
+void ClockWidget::setTimeFormat(const TimeFormat &timeFormat)
+{
+ if(mDigitalClock){
+ mTimeFormat = timeFormat;
+ if (timeFormat == ClockWidget::TimeFormat12Hrs) {
+ mDigitalClock->setAmPm(true);
+ } else {
+ mDigitalClock->setAmPm(false);
+ }
}
}
-
// End of file --Don't remove this.