diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 816636c1..387ffda1 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -406,6 +406,10 @@ bool UBGraphicsItemDelegate::isLocked() void UBGraphicsItemDelegate::duplicate() { + // TODO UB 4.x .. rewrite .. .this is absurde ... we know what we are duplicating + + UBApplication::boardController->copy(); + UBApplication::boardController->paste(); UBApplication::boardController->duplicateItem(dynamic_cast(delegated())); } @@ -724,7 +728,11 @@ void UBGraphicsToolBarItem::paint(QPainter *painter, const QStyleOptionGraphicsI } MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent) -{} +{ + val = 0; + smallPoint = false; + setNumDigits(4); +} MediaTimer::~MediaTimer() {} @@ -807,9 +815,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 @@ -824,16 +830,17 @@ char* MediaTimer::getSegments(char ch) // gets list of segments fo { 8, 9,99, 0, 0, 0, 0, 0}, // 10 : {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, @@ -1055,13 +1062,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; @@ -1129,7 +1129,6 @@ DelegateMediaControl::DelegateMediaControl(UBGraphicsMediaItem* pDelegated, QGra setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Control)); lcdTimer = new MediaTimer(this); - lcdTimer->init(); update(); } @@ -1182,6 +1181,8 @@ void DelegateMediaControl::positionHandles() mLCDTimerArea.setHeight(parentItem()->boundingRect().height()); lcdTimer->setRect(mLCDTimerArea); lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0); + //lcdTimer->setRect(mLCDTimerArea); + //lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0); mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()); @@ -1190,6 +1191,7 @@ void DelegateMediaControl::positionHandles() setRect(selfRect); lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); + //lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); } @@ -1198,6 +1200,7 @@ void DelegateMediaControl::update() QTime t; t = t.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs); lcdTimer->display(t.toString("m:ss")); + //lcdTimer->display(t.toString("m:ss")); QGraphicsRectItem::update(); } @@ -1250,6 +1253,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos) minX = frameWidth; length = mSeecArea.width() - lcdTimer->rect().width(); + length = mSeecArea.width() /*- lcdTimer->rect().width()*/; qreal mouseX = mousePos.x(); if (mouseX >= (mSeecArea.width() - mSeecArea.height()/2)) diff --git a/src/domain/UBGraphicsItemDelegate.h b/src/domain/UBGraphicsItemDelegate.h index 68c9e35e..f135f66b 100644 --- a/src/domain/UBGraphicsItemDelegate.h +++ b/src/domain/UBGraphicsItemDelegate.h @@ -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