--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/views/src/calengriditemprototype.cpp Fri Apr 16 14:57:40 2010 +0300
@@ -0,0 +1,174 @@
+/*
+ * 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: Definition file for class CalenGridItemPrototype.
+ *
+ */
+
+// System includes
+#include <QDebug>
+#include <QPainter>
+#include <QPen>
+#include <QGraphicsWidget>
+#include <QGraphicsLinearLayout>
+#include <hblabel.h>
+#include <hbcolorscheme.h>
+
+// User includes
+#include "calengriditemprototype.h"
+#include "calengriditem.h"
+#include "calencommon.h"
+
+#define GRIDLINE_WIDTH 0.075 //units
+/*!
+ \class CalenGridItemPrototype
+
+ Prototype class for HbGridView.
+ */
+
+/*!
+ Constructor.
+ */
+CalenGridItemPrototype::CalenGridItemPrototype(QGraphicsWidget *parent) :
+ HbAbstractViewItem(parent),
+ mLayout(0),
+ mCurrentDateColor(Qt::black),
+ mGridBorderColor(Qt::gray),
+ mIsSeventhColumn(false)
+ {
+ // Nothing yet.
+ }
+
+/*!
+ From HbAbstractViewItem.
+
+ \return CalenGridItemPrototype* Pointer to the constructed object.
+ \sa HbAbstractViewItem, HbGridViewItem
+ */
+HbAbstractViewItem *CalenGridItemPrototype::createItem()
+{
+ CalenGridItemPrototype *item = new CalenGridItemPrototype();
+ item->createItemLayout();
+ return item;
+}
+
+/*!
+ From HbAbstractViewItem.
+
+ \sa HbAbstractViewItem, HbGridViewItem
+ */
+void CalenGridItemPrototype::updateChildItems()
+{
+ // Here update content of each item.
+
+ QVariant monthDayRole =
+ modelIndex().data(CalendarNamespace::CalendarMonthDayRole);
+ if (monthDayRole.isValid()) {
+ if (monthDayRole.canConvert<QString>()) {
+ mWidget->updateMonthDayInfo(monthDayRole.toString());
+ }
+ }
+
+ QVariant monthEventRole =
+ modelIndex().data(CalendarNamespace::CalendarMonthEventRole);
+ if (monthEventRole.isValid()) {
+ if (monthEventRole.canConvert<QString>()) {
+ mWidget->updateEventIndicator(monthEventRole.toString());
+ }
+ }
+
+ QVariant monthFocusRole =
+ modelIndex().data(CalendarNamespace::CalendarMonthFocusRole);
+ if (monthFocusRole.isValid()) {
+ if (monthFocusRole.canConvert<QString>()) {
+ mWidget->updateFocusIndicator(monthFocusRole.toString());
+ }
+ }
+
+ QVariant monthTextColorRole =
+ modelIndex().data(CalendarNamespace::CalendarMonthTextColorRole);
+ if (monthTextColorRole.isValid()) {
+ if (monthTextColorRole.canConvert<QColor>()) {
+ mWidget->updateMonthDayInfoColor(monthTextColorRole.value<QColor>());
+ }
+ }
+
+ QVariant seventhColumnRole =
+ modelIndex().data(CalendarNamespace::CalendarMonthSeventhColumn);
+ if (seventhColumnRole.isValid()) {
+ if (seventhColumnRole.canConvert<bool>()) {
+ mIsSeventhColumn = seventhColumnRole.value<bool>();
+ }
+ }
+ bool underlineEnabled = modelIndex().data(
+ CalendarNamespace::CalendarMonthUnderlineRole).value<bool>();
+ mWidget->drawUnderline(underlineEnabled);
+
+}
+
+/*!
+ Creates the item layout.
+ */
+void CalenGridItemPrototype::createItemLayout()
+{
+ mLayout = new QGraphicsLinearLayout(Qt::Vertical, this);
+
+ mWidget = new CalenGridItem(this);
+ mLayout->addItem(mWidget);
+
+ mLayout->setSpacing(0);
+ mLayout->setContentsMargins(0, 0, 0, 0);
+
+ setLayout(mLayout);
+}
+
+/*!
+ To paint grid item border
+ */
+void CalenGridItemPrototype::paint(QPainter* painter,
+ const QStyleOptionGraphicsItem* option,
+ QWidget* widget)
+{
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+
+ QPen pen;//
+ pen.setStyle(Qt::SolidLine);
+ pen.setWidth(GRIDLINE_WIDTH);
+ QColor gridLineColor = HbColorScheme::color("qtc_cal_grid_line");
+ if (gridLineColor.isValid()) {
+ pen.setBrush(gridLineColor);
+ } else {
+ pen.setBrush(mGridBorderColor);
+ }
+ painter->setPen(pen);
+ QRectF controlRect = boundingRect();
+ // Check if this is seventh column item
+ if ( !mIsSeventhColumn ) {
+ // Then draw right and bottom borders
+ QPointF startPoint = controlRect.bottomLeft();
+ QPointF endPoint = controlRect.bottomRight();
+ // Draw the bottom border
+ painter->drawLine(startPoint, endPoint);
+ startPoint = controlRect.topRight();
+ // Draw right border
+ painter->drawLine(startPoint, endPoint);
+ } else {
+ // Then draw only bottom border
+ QPointF startPoint = controlRect.bottomLeft();
+ QPointF endPoint = controlRect.bottomRight();
+ // Draw the bottom border
+ painter->drawLine(startPoint, endPoint);
+ }
+}
+// End of file --Don't remove this.