- //// HIGHLIGHTING SELECTED ITEM
- //if (option.state & QStyle::State_Selected)
- //painter->fillRect(option.rect, option.palette.highlight());
-
- // draw title
- QPointF titlePointF(option.rect.x()+SPACER,option.rect.y()+option.rect.height()-10);
- QString text;
- if(index.parent().isValid()) // event
- text = qVariantValue<QString>(index.data()) + ": " + static_cast<Event*>(index.internalPointer())->title();
- else // group
- text = qVariantValue<QString>(index.data());
- painter->drawText(titlePointF,text);
+ else // doesn't have parent - time-groups' elements (top items)
+ {
+ int numFav = numberOfFavourities(index);
+ int numAlarm = numberOfAlarms(index);
+
+ QStyleOptionButton styleOptionButton;
+ styleOptionButton.rect = option.rect;
+ if (isExpanded(index)) styleOptionButton.state = QStyle::State_Sunken;
+ // styleOptionButton.text = qVariantValue<QString>(index.data());
+ qApp->style()->drawPrimitive(QStyle::PE_PanelButtonCommand, &styleOptionButton, painter, mViewPtr);
+ // qApp->style()->drawControl(QStyle::CE_PushButtonLabel, &styleOptionButton, painter, mViewPtr);
+ // qApp->style()->drawPrimitive(QStyle::PE_IndicatorArrowDown, &styleOptionButton, painter, mViewPtr);
+
+ QFont fontSmall = option.font;
+ fontSmall.setBold(true);
+ fontSmall.setPixelSize(option.rect.height()*scaleFactor1);
+ QFontMetrics fmSmall(fontSmall);
+
+ QFont fontBig = option.font;
+ fontBig.setBold(true);
+ fontBig.setPixelSize(option.rect.height()*scaleFactor2);
+ QFontMetrics fmBig(fontBig);
+
+ int spacer = (fmSmall.boundingRect("999").width() < SPACER) ? SPACER : fmSmall.boundingRect("999").width();
+
+ // draw icons
+ painter->setPen(QPen(textColor));
+ painter->setFont(fontSmall);
+ QImage *image = mControls[numFav ? FavouriteControlStrong : FavouriteControlNo]->image();
+ QPoint drawPoint =
+ option.rect.topRight()
+ - QPoint(
+ spacer + image->width(),
+ - option.rect.height()/2 + image->height()/2);
+ painter->drawImage(drawPoint,*image);
+ painter->drawText(drawPoint+QPoint(image->width()+2, image->height() - 2),
+ QString::number(numFav));
+
+ drawPoint.setX(drawPoint.x() - spacer - image->width());
+ image = mControls[numAlarm ? AlarmControlOn : AlarmControlOff]->image();
+ painter->drawImage(drawPoint,*image);
+ painter->drawText(drawPoint+QPoint(image->width()+2, image->height() - 2),
+ QString::number(numAlarm));
+
+ // draw texts
+ QString numEvents = QString::number(index.model()->rowCount(index)).append("/");
+ drawPoint.setX(drawPoint.x() - spacer - fmSmall.boundingRect(numEvents).width());
+ drawPoint.setY(drawPoint.y()+image->height() - 2);
+ painter->drawText(drawPoint,numEvents);
+
+ QPointF titlePointF = QPoint(
+ option.rect.x()+SPACER,
+ option.rect.y()+option.rect.height()-fmBig.descent());
+ painter->setFont(fontBig);
+ painter->drawText(titlePointF,index.data().value<QString>());
+ }