Commit 5fbec357 authored by Adam Pigg's avatar Adam Pigg

Implemented inline editing for labels in reports

REVIEW: 119222

Squashed commit of the following:

commit 3ffeb7c1808bd64eda08aee8138e35a2b85535bb
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Sat Nov 29 22:34:10 2014 +0000

    fix defect 11

commit ac808361a3605203139132e332bbb915626b4ed8
Merge: faf035e b709405
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Sat Nov 29 21:07:53 2014 +0000

    Merge branch 'master' into label-inline-edit

    Conflicts:
    	libs/koreport/wrtembed/reportscene.cpp

commit faf035e2ef0df2c8008dc77f7fac9e758da791f7
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Sat Nov 29 20:37:31 2014 +0000

    address review comments by refactoring

commit bed6665bfd47e8316729967cbe0d64104cb42524
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Sat Nov 29 18:02:04 2014 +0000

    Accept editing when focus lost (ie, switch view)

commit 3e9d10d03fd2a2057de87e29903589c1279dacdd
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Fri Nov 28 23:01:58 2014 +0000

    fix slots

commit e66c00a3a6b1f96a0ee2cf4fddc3a3d27694e16d
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Fri Nov 28 22:50:40 2014 +0000

    Address review issues

    Enter edit mode on new item
    Fix handling lost focos
    Code tidy

commit d6fd3fa32194a7e87039aa77ebffdeeed0b8d36a
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Wed Nov 19 21:57:21 2014 +0000

    Addressed review comments

    Fixed mouse interaction
    Fixed foreground colour
    Fixed font

commit 7c80e4c61e9ecdac16b1d343cd8389cb82eafe08
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Fri Nov 14 21:03:02 2014 +0000

    Updated inline edit of labels

    Double-click/f2 to enter edit
    Escape/click scene to exit edit
    Paint bg color properly

commit 20271ffe3c484d9f7956c2c673546c077bef86aa
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Wed Nov 12 22:43:11 2014 +0000

    resolve review issues

commit b88adfbc1640f083ec398254e468951a472935b5
Merge: a2eb32e db38193
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Wed Nov 12 22:42:27 2014 +0000

    Merge branch 'master' of git://anongit.kde.org/calligra into label-inline-edit

    Conflicts:
    	libs/koreport/items/label/KoReportDesignerItemLabel.h

commit a2eb32ecbc65b41660da4efbc7e209bcc3054169
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Mon Nov 3 19:48:05 2014 +0000

    Style the edit button with an xpm image

commit 8065d19b122591d36da8c737d99d28bf4e58abc7
Author: Adam Pigg <adam@piggz.co.uk>
Date:   Mon Nov 3 09:21:04 2014 +0000

    Make labels inline-editable

    Uses a button in the middle of the label to switch modes
parent fa15e426
......@@ -17,7 +17,7 @@ include_directories(
)
#build a shared library
set(koreport_LIB_SRCS
set(koreport_LIB_SRCS
common/krutils.cpp
common/krpos.cpp
common/krsize.cpp
......@@ -84,6 +84,7 @@ set(koreport_LIB_SRCS
items/label/KoReportDesignerItemLabel.cpp
items/label/krscriptlabel.cpp
items/label/KoReportLabelPlugin.cpp
items/label/BoundedTextItem.cpp
items/check/KoReportItemCheck.cpp
items/check/KoReportDesignerItemCheck.cpp
......
......@@ -92,7 +92,7 @@ void KoReportDesignerItemCheck::paint(QPainter* painter, const QStyleOptionGraph
painter->setPen(m_foregroundColor->value().value<QColor>());
if ((Qt::PenStyle)m_lineStyle->value().toInt() == Qt::NoPen || m_lineWeight->value().toInt() <= 0) {
painter->setPen(QPen(QColor(224, 224, 224)));
painter->setPen(QPen(Qt::lightGray));
} else {
painter->setPen(QPen(m_lineColor->value().value<QColor>(), m_lineWeight->value().toInt(), (Qt::PenStyle)m_lineStyle->value().toInt()));
}
......
......@@ -106,7 +106,7 @@ void KoReportDesignerItemField::paint(QPainter* painter, const QStyleOptionGraph
if ((Qt::PenStyle)m_lineStyle->value().toInt() == Qt::NoPen || m_lineWeight->value().toInt() <= 0) {
painter->setPen(QPen(QColor(224, 224, 224)));
painter->setPen(QPen(Qt::lightGray));
} else {
painter->setPen(QPen(m_lineColor->value().value<QColor>(), m_lineWeight->value().toInt(), (Qt::PenStyle)m_lineStyle->value().toInt()));
}
......
......@@ -106,7 +106,7 @@ void KoReportDesignerItemImage::paint(QPainter* painter, const QStyleOptionGraph
}
//Draw a border so user knows the object edge
painter->setPen(QPen(QColor(224, 224, 224)));
painter->setPen(QPen(Qt::lightGray));
painter->drawRect(rect());
......
/*
KoReport report rendering library
Copyright (C) 2014 Adam Pigg <adam@piggz.co.uk>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "BoundedTextItem.h"
#include <QPainter>
#include <QStyleOptionGraphicsItem>
#include <QKeyEvent>
#include <QDebug>
BoundedTextItem::BoundedTextItem(QGraphicsItem* parent): QGraphicsTextItem(parent)
{
setTextInteractionFlags(Qt::TextEditorInteraction);
}
QRectF BoundedTextItem::boundingRect() const
{
if (parentItem()) {
return parentItem()->boundingRect();
}
return QGraphicsTextItem::boundingRect();
}
void BoundedTextItem::paint( QPainter *painter, const QStyleOptionGraphicsItem *o, QWidget *w)
{
QColor bg = m_backgroundColor.isValid() ? m_backgroundColor : o->palette.base().color();
bg.setAlphaF(m_backgroundOpacity * 0.01);
QColor fc = m_foregroundColor.isValid() ? m_foregroundColor : o->palette.text().color();
painter->setBrush(bg);
painter->setPen(fc);
painter->drawRect(boundingRect());
QStyleOptionGraphicsItem opt(*o);
opt.state &= ~QStyle::State_HasFocus;
QGraphicsTextItem::paint(painter, &opt, w);
}
void BoundedTextItem::setBackgroudColor(const QColor& bc)
{
m_backgroundColor = bc;
}
void BoundedTextItem::setForegroundColor(const QColor& fc)
{
m_foregroundColor = fc;
}
void BoundedTextItem::setDisplayFont(const QFont& f)
{
m_font = f;
setFont(m_font);
}
void BoundedTextItem::setBackgroudOpacity(int o)
{
m_backgroundOpacity = o;
}
void BoundedTextItem::keyReleaseEvent(QKeyEvent* event)
{
if (event->key() == Qt::Key_Escape) {
emit exitEditMode();
} else {
QGraphicsTextItem::keyReleaseEvent(event);
}
}
#include "BoundedTextItem.moc"
/*
KoReport report rendering library
Copyright (C) 2014 Adam Pigg <adam@piggz.co.uk>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KOREPORT_BOUNDEDTEXTITEM_H
#define KOREPORT_BOUNDEDTEXTITEM_H
#include <QGraphicsTextItem>
#include <QFont>
/**
* @brief Subclass of QGraphicsTextItem which simply forces
* its boundingRect to be the same as its parent.
* By default a QGraphicsTextItem will size to its text and
* we want it to size to the parent item.
*
*/
class BoundedTextItem : public QGraphicsTextItem
{
Q_OBJECT
public:
explicit BoundedTextItem(QGraphicsItem *parent);
virtual QRectF boundingRect() const;
virtual void paint( QPainter *painter, const QStyleOptionGraphicsItem *o, QWidget *w);
void setBackgroudColor(const QColor &bc);
void setForegroundColor(const QColor &fc);
void setBackgroudOpacity(int o);
void setDisplayFont(const QFont &f);
protected:
virtual void keyReleaseEvent ( QKeyEvent * event );
private:
QColor m_backgroundColor;
QColor m_foregroundColor;
QFont m_font;
int m_backgroundOpacity;
signals:
void exitEditMode();
};
#endif // KOREPORT_BOUNDEDTEXTITEM_H
......@@ -20,6 +20,7 @@
#include "KoReportDesignerItemLabel.h"
#include <KoReportDesignerItemBase.h>
#include <KoReportDesigner.h>
#include "reportscene.h"
#include <QDomDocument>
#include <QPainter>
......@@ -28,6 +29,8 @@
#include <koproperty/EditorView.h>
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
#include <QTextCursor>
//
// class ReportEntityLabel
......@@ -44,6 +47,15 @@ void KoReportDesignerItemLabel::init(QGraphicsScene *scene, KoReportDesigner *d)
this, SLOT(slotPropertyChanged(KoProperty::Set&,KoProperty::Property&)));
setZValue(Z);
setFlag(ItemIsFocusable);
m_inlineEdit = new BoundedTextItem(this);
m_inlineEdit->setVisible(false);
m_inlineEdit->setFlag(ItemIsFocusable);
m_inlineEdit->setFlag(ItemIsSelectable, false);
m_inlineEdit->setPlainText(text());
connect(m_inlineEdit, SIGNAL(exitEditMode()), this, SLOT(exitInlineEditingMode()));
}
// methods (constructors)
......@@ -54,10 +66,12 @@ KoReportDesignerItemLabel::KoReportDesignerItemLabel(KoReportDesigner* d, QGraph
init(scene, d);
setSceneRect(properRect(*d, getTextRect().width(), getTextRect().height()));
m_name->setValue(m_reportDesigner->suggestEntityName(typeName()));
enterInlineEditingMode();
}
KoReportDesignerItemLabel::KoReportDesignerItemLabel(QDomNode & element, KoReportDesigner * d, QGraphicsScene * s)
: KoReportItemLabel(element), KoReportDesignerItemRectBase(d)
: KoReportItemLabel(element), KoReportDesignerItemRectBase(d), m_inlineEdit(0)
{
init(s, d);
setSceneRect(m_pos.toScene(), m_size.toScene());
......@@ -87,6 +101,10 @@ void KoReportDesignerItemLabel::paint(QPainter* painter, const QStyleOptionGraph
Q_UNUSED(option);
Q_UNUSED(widget);
if (m_inlineEdit->isVisible()) {
return;
}
// store any values we plan on changing so we can restore them
QFont f = painter->font();
QPen p = painter->pen();
......@@ -109,8 +127,6 @@ void KoReportDesignerItemLabel::paint(QPainter* painter, const QStyleOptionGraph
}
painter->drawRect(QGraphicsRectItem::rect());
painter->setPen(m_foregroundColor->value().value<QColor>());
drawHandles(painter);
......@@ -155,6 +171,8 @@ void KoReportDesignerItemLabel::slotPropertyChanged(KoProperty::Set &s, KoProper
} else {
m_oldName = p.value().toString();
}
} else if (p.name() == "caption") {
m_inlineEdit->setPlainText(p.value().toString());
}
KoReportDesignerItemRectBase::propertyChanged(s, p);
......@@ -162,6 +180,46 @@ void KoReportDesignerItemLabel::slotPropertyChanged(KoProperty::Set &s, KoProper
}
void KoReportDesignerItemLabel::enterInlineEditingMode()
{
if (!m_inlineEdit->isVisible()) {
m_inlineEdit->setVisible(true);
m_inlineEdit->setPlainText(text());
m_inlineEdit->setFocus();
QTextCursor c = m_inlineEdit->textCursor();
c.select(QTextCursor::Document);
m_inlineEdit->setTextCursor(c);
m_inlineEdit->setFont(m_font->value().value<QFont>());
m_inlineEdit->setDefaultTextColor(m_foregroundColor->value().value<QColor>());
m_inlineEdit->setBackgroudColor(m_backgroundColor->value().value<QColor>());
m_inlineEdit->setBackgroudOpacity(m_backgroundOpacity->value().toInt());
m_inlineEdit->setForegroundColor(m_foregroundColor->value().value<QColor>());
m_inlineEdit->setFont(m_font->value().value<QFont>());
update();
}
}
void KoReportDesignerItemLabel::exitInlineEditingMode()
{
if (m_inlineEdit->isVisible()) {
m_inlineEdit->setVisible(false);
setText(m_inlineEdit->toPlainText());
}
}
void KoReportDesignerItemLabel::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event)
{
enterInlineEditingMode();
}
void KoReportDesignerItemLabel::keyReleaseEvent(QKeyEvent* event)
{
if (event->key() == Qt::Key_F2) {
enterInlineEditingMode();
} else {
QGraphicsRectItem::keyReleaseEvent(event);
}
}
......@@ -25,6 +25,10 @@
#include <koproperty/Set.h>
#include "KoReportItemLabel.h"
#include <KoReportDesignerItemRectBase.h>
#include <QGraphicsItem>
#include <QGraphicsItemGroup>
#include "BoundedTextItem.h"
//
// ReportEntityLabel
//
......@@ -39,13 +43,23 @@ public:
virtual void buildXML(QDomDocument & doc, QDomElement & parent);
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
virtual KoReportDesignerItemLabel* clone();
public slots:
virtual void enterInlineEditingMode();
virtual void exitInlineEditingMode();
protected:
virtual void mouseDoubleClickEvent ( QGraphicsSceneMouseEvent * event );
virtual void keyReleaseEvent ( QKeyEvent * event );
private:
void init(QGraphicsScene*, KoReportDesigner*);
QRectF getTextRect() const;
BoundedTextItem *m_inlineEdit;
private slots:
void slotPropertyChanged(KoProperty::Set &, KoProperty::Property &);
};
#endif
......@@ -108,7 +108,7 @@ void KoReportDesignerItemText::paint(QPainter* painter, const QStyleOptionGraphi
painter->drawText(rect(), textFlags(), dataSourceAndObjectTypeName(itemDataSource(), "textarea"));
if ((Qt::PenStyle)m_lineStyle->value().toInt() == Qt::NoPen || m_lineWeight->value().toInt() <= 0) {
painter->setPen(QPen(QColor(224, 224, 224)));
painter->setPen(QPen(Qt::lightGray));
} else {
painter->setPen(QPen(m_lineColor->value().value<QColor>(), m_lineWeight->value().toInt(), (Qt::PenStyle)m_lineStyle->value().toInt()));
}
......
......@@ -189,7 +189,7 @@ bool KoReportPrintRenderer::render(const KoReportRendererContext &context, ORODo
context.painter->setPen(chk->foregroundColor());
if (chk->lineStyle().style == Qt::NoPen || chk->lineStyle().weight <= 0) {
context.painter->setPen(QPen(QColor(224, 224, 224)));
context.painter->setPen(QPen(Qt::lightGray));
} else {
context.painter->setPen(QPen(chk->lineStyle().lineColor, chk->lineStyle().weight, chk->lineStyle().style));
}
......
......@@ -157,7 +157,7 @@ bool KoReportScreenRenderer::render(const KoReportRendererContext& context, OROD
context.painter->setPen(chk->foregroundColor());
if (chk->lineStyle().style == Qt::NoPen || chk->lineStyle().weight <= 0) {
context.painter->setPen(QPen(QColor(224, 224, 224)));
context.painter->setPen(QPen(Qt::lightGray));
} else {
context.painter->setPen(QPen(chk->lineStyle().lineColor, chk->lineStyle().weight, chk->lineStyle().style));
}
......
......@@ -114,7 +114,7 @@ bool KoOdtFrameReportCheckBox::saveData(KoStore* store, KoXmlWriter* manifestWri
QSizeF sz = chk->size();
QPen fpen; // frame pen
if (chk->lineStyle().style == Qt::NoPen || chk->lineStyle().weight <= 0) {
fpen = QPen(QColor(224, 224, 224));
fpen = QPen(Qt::lightGray);
} else {
fpen = QPen(chk->lineStyle().lineColor, chk->lineStyle().weight, chk->lineStyle().style);
}
......
......@@ -704,8 +704,9 @@ void KoReportDesigner::slotPageButton_Pressed()
QStringList sl = m_kordata->scriptList(m_interpreter->value().toString());
m_script->setListData(sl, sl);
changeSet(m_set);
}
changeSet(m_set);
}
QSize KoReportDesigner::sizeHint() const
......@@ -904,11 +905,13 @@ void KoReportDesigner::sectionMouseReleaseEvent(ReportSceneView * v, QMouseEvent
item->setVisible(true);
item->setSelected(true);
KoReportItemBase* baseReportItem = dynamic_cast<KoReportItemBase*>(item);
changeSet(baseReportItem->propertySet());
if (v && v->designer()) {
v->designer()->setModified(true);
if (baseReportItem) {
changeSet(baseReportItem->propertySet());
if (v && v->designer()) {
v->designer()->setModified(true);
}
emit itemInserted(m_sectionData->insertItem);
}
emit itemInserted(m_sectionData->insertItem);
}
m_sectionData->mouseAction = ReportWriterSectionData::MA_None;
......@@ -1149,7 +1152,7 @@ bool KoReportDesigner::isEntityNameUnique(const QString &n, KoReportItemBase* ig
const QGraphicsItemList l = sec->items();
for (QGraphicsItemList::const_iterator it = l.constBegin(); it != l.constEnd(); ++it) {
KoReportItemBase* itm = dynamic_cast<KoReportItemBase*>(*it);
if (itm->entityName() == n && itm != ignore) {
if (itm && itm->entityName() == n && itm != ignore) {
unique = false;
break;
}
......@@ -1166,7 +1169,7 @@ bool KoReportDesigner::isEntityNameUnique(const QString &n, KoReportItemBase* ig
const QGraphicsItemList l = sec->items();
for (QGraphicsItemList::const_iterator it = l.constBegin(); it != l.constEnd(); ++it) {
KoReportItemBase* itm = dynamic_cast<KoReportItemBase*>(*it);
if (itm->entityName() == n && itm != ignore) {
if (itm && itm->entityName() == n && itm != ignore) {
unique = false;
break;
}
......@@ -1178,7 +1181,7 @@ bool KoReportDesigner::isEntityNameUnique(const QString &n, KoReportItemBase* ig
const QGraphicsItemList l = sec->items();
for (QGraphicsItemList::const_iterator it = l.constBegin(); it != l.constEnd(); ++it) {
KoReportItemBase* itm = dynamic_cast<KoReportItemBase*>(*it);
if (itm->entityName() == n && itm != ignore) {
if (itm && itm->entityName() == n && itm != ignore) {
unique = false;
break;
}
......@@ -1192,7 +1195,7 @@ bool KoReportDesigner::isEntityNameUnique(const QString &n, KoReportItemBase* ig
const QGraphicsItemList l = sec->items();
for (QGraphicsItemList::const_iterator it = l.constBegin(); it != l.constEnd(); ++it) {
KoReportItemBase* itm = dynamic_cast<KoReportItemBase*>(*it);
if (itm->entityName() == n && itm != ignore) {
if (itm && itm && itm->entityName() == n && itm != ignore) {
unique = false;
break;
}
......
......@@ -361,3 +361,11 @@ QRectF KoReportDesignerItemRectBase::properRect(const KoReportDesigner &d, qreal
}
return (QRectF(QPointF(currentPressX, currentPressY), QSizeF(width, height)));
}
void KoReportDesignerItemRectBase::enterInlineEditingMode()
{
}
void KoReportDesignerItemRectBase::exitInlineEditingMode()
{
}
......@@ -45,6 +45,9 @@ public:
QRectF pointRect() const;
virtual void enterInlineEditingMode();
virtual void exitInlineEditingMode();
protected:
void init(KRPos*, KRSize*, KoProperty::Set*, KoReportDesigner *r);
......@@ -70,7 +73,7 @@ protected:
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent * event);
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent * event);
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
void propertyChanged(const KoProperty::Set &s, const KoProperty::Property &p);
virtual void move(const QPointF&);
......
......@@ -91,7 +91,7 @@ void ReportScene::drawBackground(QPainter* painter, const QRectF & clip)
m_pixelIncrementY = (m_majorY / m_minorSteps);
QPen pen = painter->pen();
painter->setPen(QColor(212, 212, 212));
painter->setPen(Qt::lightGray);
//kDebug() << "dpix" << KoDpi::dpiX() << "dpiy" << KoDpi::dpiY() << "mayorx:" << majorx << "majory" << majory << "pix:" << pixel_incrementx << "piy:" << pixel_incrementy;
......@@ -135,7 +135,16 @@ void ReportScene::mousePressEvent(QGraphicsSceneMouseEvent * e)
clearSelection();
//This will be caught by the section to display its properties, if an item is under the cursor then they will display their properties
emit clicked();
QGraphicsItem* itemUnderCursor = itemAt(e->scenePos());
if (!itemUnderCursor) {
emit clicked();
}
KoReportDesignerItemRectBase *rectUnderCursor = qgraphicsitem_cast< KoReportDesignerItemRectBase* >(itemUnderCursor);
if (itemUnderCursor && !rectUnderCursor) {
rectUnderCursor = qgraphicsitem_cast< KoReportDesignerItemRectBase* >(itemUnderCursor->parentItem());
}
exitInlineEditingModeInItems(rectUnderCursor);
QGraphicsScene::mousePressEvent(e);
}
......@@ -180,8 +189,10 @@ QPointF ReportScene::gridPoint(const QPointF& p)
void ReportScene::focusOutEvent(QFocusEvent * focusEvent)
{
QGraphicsScene::focusOutEvent(focusEvent);
exitInlineEditingModeInItems(0);
emit lostFocus();
QGraphicsScene::focusOutEvent(focusEvent);
}
qreal ReportScene::lowestZValue()
......@@ -211,7 +222,6 @@ qreal ReportScene::highestZValue()
if (zz > z) {
z = zz;
}
}
return z;
}
......@@ -241,11 +251,18 @@ QGraphicsItemList ReportScene::itemsOrdered()
for (QGraphicsItemList::iterator it = list.begin(); it != list.end(); ++it) {
for (QGraphicsItemList::iterator rit = r.begin(); rit != r.end(); ++rit) {
}
}
return r;
}
void ReportScene::exitInlineEditingModeInItems(KoReportDesignerItemRectBase *rectUnderCursor)
{
foreach(QGraphicsItem *it, items()) {
KoReportDesignerItemRectBase *itm = qgraphicsitem_cast< KoReportDesignerItemRectBase* >(it);
if (itm && itm != rectUnderCursor) {
itm->exitInlineEditingMode();
}
}
}
......@@ -32,6 +32,7 @@ typedef QList<QGraphicsItem*> QGraphicsItemList;
class KoReportDesigner;
class QGraphicsSceneContextMenuEvent;
class QGraphicsSceneMouseEvent;
class KoReportDesignerItemRectBase;
class ReportScene : public QGraphicsScene
{
......@@ -63,6 +64,7 @@ signals:
private:
qreal lowestZValue();
qreal highestZValue();
void exitInlineEditingModeInItems(KoReportDesignerItemRectBase *rectUnderCursor);
KoReportDesigner * m_rd;
......
......@@ -87,7 +87,7 @@ protected:
ReportSceneView * m_sceneView;
KoReportDesigner* m_reportDesigner;
KoRuler* m_sectionRuler;
private:
KRSectionData *m_sectionData;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment