Digital timer fix

preferencesAboutTextFull
Anatoly Mihalchenko 12 years ago
parent 653201b63a
commit 3c0d021b2d
  1. 36
      src/domain/UBGraphicsItemDelegate.cpp
  2. 29
      src/domain/UBGraphicsItemDelegate.h

@ -727,7 +727,11 @@ void UBGraphicsToolBarItem::paint(QPainter *painter, const QStyleOptionGraphicsI
}
MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent)
{}
{
val = 0;
smallPoint = false;
setNumDigits(4);
}
MediaTimer::~MediaTimer()
{}
@ -810,9 +814,7 @@ void MediaTimer::drawDigit(const QPoint &pos, QPainter &p, int segLen,
}
}
char* MediaTimer::getSegments(char ch) // gets list of segments for ch
{
char segments[30][8] =
char MediaTimer::segments [][8] =
{
{ 0, 1, 2, 4, 5, 6,99, 0}, // 0 0
{ 2, 5,99, 0, 0, 0, 0, 0}, // 1 1
@ -828,15 +830,16 @@ char* MediaTimer::getSegments(char ch) // gets list of segments fo
{99, 0, 0, 0, 0, 0, 0, 0} // 11 empty
};
int n;
const char* MediaTimer::getSegments(char ch) // gets list of segments for ch
{
if (ch >= '0' && ch <= '9')
return segments[ch - '0'];
if (ch == ':')
n = 10;
return segments[10];
if (ch == ' ')
n = 11;
return segments[11];
return segments[n];
return NULL;
}
void MediaTimer::drawSegment(const QPoint &pos, char segmentNo, QPainter &p,
@ -986,15 +989,8 @@ void MediaTimer::addPoint(QPolygon &a, const QPoint &p)
}
void MediaTimer::paint(QPainter *p,
const QStyleOptionGraphicsItem *option, QWidget *widget)
const QStyleOptionGraphicsItem *, QWidget*)
{
Q_UNUSED(option);
Q_UNUSED(widget);
QFont f = p->font();
f.setPointSizeF(f.pointSizeF());
p->setFont(f);
if (smallPoint)
drawString(digitStr, *p, &points, false);
else
@ -1058,13 +1054,6 @@ void MediaTimer::internalSetString(const QString& s)
update();
}
void MediaTimer::init()
{
val = 0;
smallPoint = false;
setNumDigits(4);
}
void MediaTimer::display(const QString &s)
{
val = 0;
@ -1132,7 +1121,6 @@ DelegateMediaControl::DelegateMediaControl(UBGraphicsMediaItem* pDelegated, QGra
setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Control));
lcdTimer = new MediaTimer(this);
lcdTimer->init();
update();
}

@ -71,33 +71,40 @@ class DelegateButton: public QGraphicsSvgItem
};
/*
Code of this class is copied from QT QLCDNumber class sources
See src\gui\widgets\qlcdnumber.cpp for original code
*/
class MediaTimer: public QGraphicsRectItem
{
public:
MediaTimer(QGraphicsItem * parent = 0);
~MediaTimer();
char* getSegments(char);
void addPoint(QPolygon&, const QPoint&);
void init();
void internalSetString(const QString& s);
void drawString(const QString& s, QPainter &, QBitArray * = 0, bool = true);
void drawDigit(const QPoint &, QPainter &, int, char, char = ' ');
void drawSegment(const QPoint &, char, QPainter &, int, bool = false);
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
void display(const QString &str);
void setNumDigits(int nDigits);
private:
static const char* getSegments(char);
void drawString(const QString& s, QPainter &, QBitArray * = 0, bool = true);
void drawDigit(const QPoint &, QPainter &, int, char, char = ' ');
void drawSegment(const QPoint &, char, QPainter &, int, bool = false);
void addPoint(QPolygon&, const QPoint&);
void internalSetString(const QString& s);
void setNumDigits(int nDigits);
static char segments [][8];
int ndigits;
QString digitStr;
QBitArray points;
double val;
uint shadow : 1;
uint smallPoint : 1;
uint shadow : 1;
uint smallPoint : 1;
};
class DelegateMediaControl: public QObject, public QGraphicsRectItem

Loading…
Cancel
Save