Changeset b1a201a for src/mvc


Ignore:
Timestamp:
01/20/10 14:30:34 (12 years ago)
Author:
pavelpa <pavelpa@…>
Branches:
master, qt5
Children:
990afd5
Parents:
d1fb9ee
Message:

display event details in the treeView

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mvc/delegate.cpp

    rd1fb9ee rb1a201a  
    11#include "delegate.h"
    22#include "eventmodel.h"
     3#include <activity.h>
    34
    45#include <QDebug>
     
    67
    78const int RADIUS = 10;
    8 const int SPACER = 23;
     9const int SPACER = 10;
    910
    1011const double scaleFactor1 = 0.4;
     
    3334        return;
    3435
    35     QFont fontSmall = option.font;
    36     fontSmall.setBold(true);
    37     fontSmall.setPixelSize(option.rect.height()*scaleFactor1);
    38     QFontMetrics fmSmall(fontSmall);
    39 
    40     QFont fontBig = option.font;
    41     fontBig.setBold(true);
    42     fontBig.setPixelSize(option.rect.height()*scaleFactor2);
    43     QFontMetrics fmBig(fontBig);
    44 
    45     int spacer = (fmSmall.boundingRect("999").width() < SPACER) ? SPACER : fmSmall.boundingRect("999").width();
    46 
    4736    painter->save();
    4837
    4938    QColor bkgrColor = Qt::cyan;
    5039    QPen borderPen(bkgrColor.darker());
     40    //QColor bkgrColor = QColor(0,0,113);
     41    //QPen borderPen(Qt::cyan);
    5142    if(hasParent(index))
    5243    {
     44        int aux = option.rect.height() - mControls[FavouriteControlOn]->drawPoint().y() - mControls[FavouriteControlOn]->image()->height();
     45        // font SMALL
     46        QFont fontSmall = option.font;
     47        fontSmall.setBold(false);
     48        fontSmall.setPixelSize(aux*0.2);
     49        QFontMetrics fmSmall(fontSmall);
     50        // font SMALL bold
     51        QFont fontSmallB = fontSmall;
     52        fontSmallB.setBold(true);
     53        QFontMetrics fmSmallB(fontSmallB);
     54
     55        // font BIG
     56        QFont fontBig = option.font;
     57        fontBig.setBold(false);
     58        fontBig.setPixelSize(aux*0.33);
     59        QFontMetrics fmBig(fontBig);
     60        // font BIG bold
     61        QFont fontBigB = fontBig;
     62        fontBigB.setBold(true);
     63        QFontMetrics fmBigB(fontBigB);
     64
     65        int spacer = (fmSmall.boundingRect("999").width() < SPACER) ? SPACER : fmSmall.boundingRect("999").width();
     66
    5367        if(isLast(index))
    5468        {
     
    6680            endPath.lineTo(option.rect.topRight());
    6781
    68             //painter->setBrush( bkgrColor );
    69             painter->setBrush(lastGradient);
     82            painter->setBrush( bkgrColor );
     83            //painter->setBrush(lastGradient);
    7084            painter->setPen(borderPen);
    7185            painter->drawPath(endPath);
     
    7589        else // middle elements
    7690        {
    77 
    7891            QLinearGradient middleGradient(option.rect.topLeft(), option.rect.bottomLeft());
    7992            middleGradient.setColorAt(0.0, Qt::white);
     
    8396            middleGradient.setColorAt(1.0, Qt::white);
    8497
    85             //painter->setBrush( bkgrColor );
    86             painter->setBrush(middleGradient);
     98            painter->setBrush( bkgrColor );
     99            //painter->setBrush(middleGradient);
    87100            painter->setPen(Qt::NoPen);
    88101            painter->drawRect(option.rect);
     
    113126
    114127        // draw texts
    115         QPointF titlePointF;
    116         titlePointF = QPoint(option.rect.x()+SPACER,option.rect.y()+option.rect.height()-10);
    117         QString text = qVariantValue<QString>(index.data()) + ": " + static_cast<Event*>(index.internalPointer())->title();
    118         painter->drawText(titlePointF,text);
     128        Event *event = static_cast<Event*>(index.internalPointer());
     129        QPointF titlePointF(mControls[FavouriteControlOn]->drawPoint(option.rect));
     130        titlePointF.setX(option.rect.x()+SPACER);
     131        titlePointF.setY(titlePointF.y()+mControls[FavouriteControlOn]->image()->height());
     132        QTime start = event->start().time();
     133        painter->setFont(fontBig);
     134        painter->drawText(titlePointF,start.toString("hh:mm") + "-" + start.addSecs(event->duration()).toString("hh:mm") + ", " + event->room());
     135        // title
     136        titlePointF.setY(titlePointF.y()+fmBig.height()-fmBig.descent());
     137        painter->setFont(fontBigB);
     138        QString title = event->title();
     139        if(fmBigB.boundingRect(title).width() > (option.rect.width()-2*SPACER)) // the title won't fit the screen
     140        {
     141            // chop words from the end
     142            while( (fmBigB.boundingRect(title + "...").width() > (option.rect.width()-2*SPACER)) && !title.isEmpty())
     143            {
     144                title.chop(1);
     145                // chop characters one-by-one from the end
     146                while( (!title.at(title.length()-1).isSpace()) && !title.isEmpty())
     147                {
     148                    title.chop(1);
     149                }
     150            }
     151            title += "...";
     152        }
     153        painter->drawText(titlePointF,title);
     154        // persons
     155        titlePointF.setY(titlePointF.y()+fmSmall.height()-fmSmall.descent());
     156        painter->setFont(fontSmall);
     157        painter->drawText(titlePointF,"Presenter(s): " + event->persons().join(" and "));
     158        // track
     159        titlePointF.setY(titlePointF.y()+fmSmall.height()-fmSmall.descent());
     160        painter->drawText(titlePointF,"Activity(s): " + Activity::getActivityName(event->activityId()));
    119161    }
    120162    else // doesn't have parent - time-groups' elements (top items)
    121163    {
     164        QFont fontSmall = option.font;
     165        fontSmall.setBold(true);
     166        fontSmall.setPixelSize(option.rect.height()*scaleFactor1);
     167        QFontMetrics fmSmall(fontSmall);
     168
     169        QFont fontBig = option.font;
     170        fontBig.setBold(true);
     171        fontBig.setPixelSize(option.rect.height()*scaleFactor2);
     172        QFontMetrics fmBig(fontBig);
     173
     174        int spacer = (fmSmall.boundingRect("999").width() < SPACER) ? SPACER : fmSmall.boundingRect("999").width();
     175
    122176        QLinearGradient titleGradient(option.rect.topLeft(), option.rect.topRight());
    123177        //titleGradient.setColorAt(0.0, Qt::white);
Note: See TracChangeset for help on using the changeset viewer.