Minor event signals bugfixes UBGraphicsTextItem

preferencesAboutTextFull
Ilia Ryabokon 11 years ago
parent 6b2a555b5f
commit a9b930d3df
  1. 12
      src/domain/UBGraphicsItemDelegate.cpp
  2. 3
      src/domain/UBGraphicsItemDelegate.h
  3. 20
      src/domain/UBGraphicsTextItem.cpp
  4. 3
      src/domain/UBGraphicsTextItem.h
  5. 37
      src/domain/UBGraphicsTextItemDelegate.cpp
  6. 4
      src/domain/UBGraphicsTextItemDelegate.h

@ -407,6 +407,18 @@ void UBGraphicsItemDelegate::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
}
bool UBGraphicsItemDelegate::keyPressEvent(QKeyEvent *event)
{
Q_UNUSED(event);
return true;
}
bool UBGraphicsItemDelegate::keyReleaseEvent(QKeyEvent *event)
{
Q_UNUSED(event);
return true;
}
QGraphicsItem *UBGraphicsItemDelegate::delegated()
{
QGraphicsItem *curDelegate = 0;

@ -255,6 +255,9 @@ class UBGraphicsItemDelegate : public QObject
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
virtual bool keyPressEvent(QKeyEvent *event);
virtual bool keyReleaseEvent(QKeyEvent *event);
virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change,
const QVariant &value);
virtual UBGraphicsScene *castUBGraphicsScene();

@ -212,6 +212,26 @@ void UBGraphicsTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
}
}
void UBGraphicsTextItem::keyPressEvent(QKeyEvent *event)
{
if (Delegate() && !Delegate()->keyPressEvent(event)) {
qDebug() << "UBGraphicsTextItem::keyPressEvent(QKeyEvent *event) has been rejected by delegate. Don't call base class method";
return;
}
QGraphicsTextItem::keyPressEvent(event);
}
void UBGraphicsTextItem::keyReleaseEvent(QKeyEvent *event)
{
if (Delegate() && !Delegate()->keyReleaseEvent(event)) {
qDebug() << "UBGraphicsTextItem::keyPressEvent(QKeyEvent *event) has been rejected by delegate. Don't call base class method";
return;
}
QGraphicsTextItem::keyReleaseEvent(event);
}
void UBGraphicsTextItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
QColor color = UBSettings::settings()->isDarkBackground() ? mColorOnDarkBackground : mColorOnLightBackground;

@ -110,6 +110,9 @@ class UBGraphicsTextItem : public QGraphicsTextItem, public UBItem, public UBRes
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual void keyPressEvent(QKeyEvent *event);
virtual void keyReleaseEvent(QKeyEvent *event);
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);

@ -334,6 +334,8 @@ void UBGraphicsTextItemDelegate::alignButtonProcess()
AlignTextButton *asAlText = static_cast<AlignTextButton*>(mAlignButton);
if (asAlText->nextKind() == AlignTextButton::k_mixed) {
restoreTextCursorFormats();
asAlText->setNextKind();
return;
}
asAlText->setNextKind();
@ -366,14 +368,19 @@ void UBGraphicsTextItemDelegate::onCursorPositionChanged(const QTextCursor &curs
qDebug() << "-----------------------";
qDebug() << "we have a selection!" << cursor.selectionStart();
qDebug() << "-----------------------";
updateAlighButtonState();
// updateAlighButtonState();
}
void UBGraphicsTextItemDelegate::onModificationChanged(bool ch)
{
Q_UNUSED(ch);
qDebug() << "modification changed";
updateAlighButtonState();
// updateAlighButtonState();
}
void UBGraphicsTextItemDelegate::onContentChanged()
{
qDebug() << "onContentChanged";
}
UBGraphicsTextItem* UBGraphicsTextItemDelegate::delegated()
@ -502,6 +509,31 @@ bool UBGraphicsTextItemDelegate::mouseReleaseEvent(QGraphicsSceneMouseEvent *eve
return true;
}
bool UBGraphicsTextItemDelegate::keyPressEvent(QKeyEvent *event)
{
Q_UNUSED(event);
return true;
}
bool UBGraphicsTextItemDelegate::keyReleaseEvent(QKeyEvent *event)
{
if (!delegated()->hasFocus()) {
return true;
}
switch (event->key()) {
case Qt::Key_Left:
case Qt::Key_Right:
case Qt::Key_Up:
case Qt::Key_Down:
updateAlighButtonState();
break;
}
qDebug() << "Key has been released" << QString::number(event->key(), 16);
return true;
}
void UBGraphicsTextItemDelegate::ChangeTextSize(qreal factor, textChangeMode changeMode)
{
if (scaleSize == changeMode)
@ -609,6 +641,7 @@ void UBGraphicsTextItemDelegate::updateAlighButtonState()
return;
}
qDebug() << "new cursor position" << delegated()->textCursor().position();
AlignTextButton *asAlBtn = static_cast<AlignTextButton*>(mAlignButton);
if (!oneBlockSelection()) {

@ -129,6 +129,9 @@ class UBGraphicsTextItemDelegate : public UBGraphicsItemDelegate
virtual bool mouseMoveEvent(QGraphicsSceneMouseEvent *event);
virtual bool mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual bool keyPressEvent(QKeyEvent *event);
virtual bool keyReleaseEvent(QKeyEvent *event);
private:
UBGraphicsTextItem* delegated();
@ -179,6 +182,7 @@ class UBGraphicsTextItemDelegate : public UBGraphicsItemDelegate
void alignButtonProcess();
void onCursorPositionChanged(const QTextCursor& cursor);
void onModificationChanged(bool ch);
void onContentChanged();
private:
const int delta;

Loading…
Cancel
Save