mirror of
https://github.com/fralx/LimeReport.git
synced 2025-04-02 15:33:46 +03:00
added border for page and lrgroupbands has a sorting property
This commit is contained in:
parent
5e91fb0c33
commit
9d10ad6227
@ -1,287 +0,0 @@
|
|||||||
#include "borderframeeditor.h"
|
|
||||||
#include "ui_borderframeeditor.h"
|
|
||||||
#include <QPainter>
|
|
||||||
#include <QGraphicsLineItem>
|
|
||||||
#include <QDebug>
|
|
||||||
#include <QMouseEvent>
|
|
||||||
#include "lrbasedesignintf.h"
|
|
||||||
#include "lrbordereditor.h"
|
|
||||||
using namespace LimeReport;
|
|
||||||
BorderFrameEditor::BorderFrameEditor(QWidget *parent)
|
|
||||||
: QWidget(parent)
|
|
||||||
, ui(new Ui::BorderFrameEditor)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
scene = new QGraphicsScene(ui->graphicsView);
|
|
||||||
|
|
||||||
QRect vRect = rect();
|
|
||||||
|
|
||||||
//Draw corder lines
|
|
||||||
//topLeft
|
|
||||||
scene->addLine(10,5, 10,10,QPen(Qt::gray));
|
|
||||||
scene->addLine(5,10, 10,10,QPen(Qt::gray));
|
|
||||||
//bottomLeft
|
|
||||||
scene->addLine(10,vRect.bottom() -5, 10,vRect.bottom()-10,QPen(Qt::gray));
|
|
||||||
scene->addLine(5,vRect.bottom()-10,10,vRect.bottom()-10,QPen(Qt::gray));
|
|
||||||
//bottomRight
|
|
||||||
scene->addLine(vRect.right()-10,vRect.bottom() -5,vRect.right()- 10,vRect.bottom()-10,QPen(Qt::gray));
|
|
||||||
scene->addLine(vRect.right()-5,vRect.bottom()-10,vRect.right()-10,vRect.bottom()-10,QPen(Qt::gray));
|
|
||||||
//topRight
|
|
||||||
scene->addLine(vRect.width()-10,5,vRect.width()- 10,10,QPen(Qt::gray));
|
|
||||||
scene->addLine(vRect.width()-5,10, vRect.width()-10,10,QPen(Qt::gray));
|
|
||||||
scene->setSceneRect(vRect);
|
|
||||||
ui->graphicsView->setScene(scene);
|
|
||||||
QGraphicsSimpleTextItem * io = new QGraphicsSimpleTextItem();
|
|
||||||
io->setAcceptedMouseButtons(Qt::LeftButton);
|
|
||||||
io->setPos(scene->sceneRect().center());
|
|
||||||
io->setText(tr("Text"));
|
|
||||||
scene->addItem(io);
|
|
||||||
|
|
||||||
QRectF bR = io->sceneBoundingRect();
|
|
||||||
io->setPos( scene->sceneRect().center().x() - bR.width()/2, scene->sceneRect().center().y() - bR.height()/2 );
|
|
||||||
connect(this,SIGNAL(borderSideClicked(int, bool)),this,SLOT(SlotBorderSideClicked(int,bool)));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
BorderFrameEditor::~BorderFrameEditor()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BorderFrameEditor::setPen(QPen pen)
|
|
||||||
{
|
|
||||||
m_pen = pen;
|
|
||||||
updateBorders();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
QPen BorderFrameEditor::pen()
|
|
||||||
{
|
|
||||||
return m_pen;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BorderFrameEditor::setAllLines()
|
|
||||||
{
|
|
||||||
|
|
||||||
topLine = scene->addLine(QLineF(10,10,rect().width() - 10,10),m_pen);
|
|
||||||
|
|
||||||
|
|
||||||
leftLine = scene->addLine(QLineF(10,10,10,rect().height() - 10),m_pen);
|
|
||||||
|
|
||||||
bottomLine = scene->addLine(QLineF(10,rect().bottom() -10,rect().width() - 10
|
|
||||||
,rect().bottom() - 10),m_pen);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rightLine = scene->addLine(QLineF(rect().width() - 10,10
|
|
||||||
,rect().width() - 10,rect().height() - 10),m_pen);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void BorderFrameEditor::unSetAllLines()
|
|
||||||
{
|
|
||||||
if(topLine)
|
|
||||||
{
|
|
||||||
scene->removeItem(topLine);
|
|
||||||
|
|
||||||
}
|
|
||||||
if(leftLine)
|
|
||||||
{
|
|
||||||
scene->removeItem(leftLine);
|
|
||||||
|
|
||||||
}
|
|
||||||
if(bottomLine)
|
|
||||||
{
|
|
||||||
scene->removeItem(bottomLine);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
if(rightLine)
|
|
||||||
{
|
|
||||||
scene->removeItem(rightLine);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void BorderFrameEditor::mousePressEvent(QMouseEvent *event)
|
|
||||||
{
|
|
||||||
|
|
||||||
if(event->x() >= 10 && event->y() <30)//Draw top border
|
|
||||||
{
|
|
||||||
|
|
||||||
if(!topLine)
|
|
||||||
{
|
|
||||||
|
|
||||||
emit borderSideClicked(1,true);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
emit borderSideClicked(1,false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if((event->x() >= 10 && event->x() < 30) && (event->y() > 10)) //Draw border left
|
|
||||||
{
|
|
||||||
if(!leftLine)
|
|
||||||
{
|
|
||||||
|
|
||||||
emit borderSideClicked(4,true);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
emit borderSideClicked(4,false);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(event->x() >= 10 && (event->y() >80 && event->y() < rect().bottom())) //Draw bottom border
|
|
||||||
{
|
|
||||||
if(!bottomLine)
|
|
||||||
{
|
|
||||||
|
|
||||||
emit borderSideClicked(2,true);
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
emit borderSideClicked(2,false);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if((event->x() >= 130 && event->x() < rect().width()) && event->y() > 10) //Draw border right
|
|
||||||
{
|
|
||||||
if(!rightLine)
|
|
||||||
{
|
|
||||||
|
|
||||||
emit borderSideClicked(8,true);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
emit borderSideClicked(8,false);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void BorderFrameEditor::SlotBorderSideClicked(int side, bool show)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch(side)
|
|
||||||
{
|
|
||||||
case BaseDesignIntf::BorderSide::TopLine:
|
|
||||||
{
|
|
||||||
if(show)
|
|
||||||
{
|
|
||||||
topLine = scene->addLine(QLineF(10,10,rect().width() - 10,10),m_pen);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
scene->removeItem(topLine);
|
|
||||||
topLine = NULL;
|
|
||||||
|
|
||||||
}
|
|
||||||
}break;
|
|
||||||
case BaseDesignIntf::LeftLine:
|
|
||||||
{
|
|
||||||
if(show)
|
|
||||||
{
|
|
||||||
leftLine = scene->addLine(QLineF(10,10,10,rect().height() - 10),m_pen);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
scene->removeItem(leftLine);
|
|
||||||
leftLine = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}break;
|
|
||||||
case BaseDesignIntf::BottomLine:
|
|
||||||
{
|
|
||||||
if(show)
|
|
||||||
{
|
|
||||||
bottomLine = scene->addLine(QLineF(10,rect().bottom() -10,rect().width() - 10
|
|
||||||
,rect().bottom() - 10),m_pen);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
scene->removeItem(bottomLine);
|
|
||||||
bottomLine = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}break;
|
|
||||||
case BaseDesignIntf::RightLine:
|
|
||||||
{
|
|
||||||
if(show)
|
|
||||||
{
|
|
||||||
rightLine = scene->addLine(QLineF(rect().width() - 10,10
|
|
||||||
,rect().width() - 10,rect().height() - 10),m_pen);
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
scene->removeItem(rightLine);
|
|
||||||
rightLine = NULL;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
updateBorders();
|
|
||||||
}
|
|
||||||
|
|
||||||
void BorderFrameEditor::updateBorders()
|
|
||||||
{
|
|
||||||
//if a line is set we redraw it
|
|
||||||
if(topLine)
|
|
||||||
{
|
|
||||||
scene->removeItem(topLine);
|
|
||||||
topLine = scene->addLine(QLineF(10,10,rect().width() - 10,10),m_pen);
|
|
||||||
|
|
||||||
}
|
|
||||||
if(leftLine)
|
|
||||||
{
|
|
||||||
scene->removeItem(leftLine);
|
|
||||||
leftLine = scene->addLine(QLineF(10,10,10,rect().height() - 10),m_pen);
|
|
||||||
|
|
||||||
}
|
|
||||||
if(bottomLine)
|
|
||||||
{
|
|
||||||
scene->removeItem(bottomLine);
|
|
||||||
|
|
||||||
bottomLine = scene->addLine(QLineF(10,rect().bottom() -10,rect().width() - 10
|
|
||||||
,rect().bottom() - 10),m_pen);
|
|
||||||
|
|
||||||
}
|
|
||||||
if(rightLine)
|
|
||||||
{
|
|
||||||
scene->removeItem(rightLine);
|
|
||||||
|
|
||||||
rightLine = scene->addLine(QLineF(rect().width() - 10,10
|
|
||||||
,rect().width() - 10,rect().height() - 10),m_pen);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
#ifndef WIDGET
|
|
||||||
#define WIDGET
|
|
||||||
|
|
||||||
#include <QWidget>
|
|
||||||
#include <QGraphicsScene>
|
|
||||||
#include <QGraphicsLineItem>
|
|
||||||
#include "lrbasedesignintf.h"
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
namespace Ui { class BorderFrameEditor; }
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
class BorderFrameEditor : public QWidget
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
BorderFrameEditor(QWidget *parent = nullptr);
|
|
||||||
~BorderFrameEditor();
|
|
||||||
void setPen(QPen pen);
|
|
||||||
QPen pen();
|
|
||||||
void setAllLines();
|
|
||||||
void unSetAllLines();
|
|
||||||
protected:
|
|
||||||
void mousePressEvent(QMouseEvent *event);
|
|
||||||
signals:
|
|
||||||
void borderSideClicked(int side,bool show);
|
|
||||||
private slots:
|
|
||||||
void SlotBorderSideClicked(int side, bool show);
|
|
||||||
|
|
||||||
private:
|
|
||||||
Ui::BorderFrameEditor *ui;
|
|
||||||
QGraphicsScene *scene;
|
|
||||||
QGraphicsLineItem *topLine = NULL
|
|
||||||
,*bottomLine = NULL
|
|
||||||
,*leftLine = NULL
|
|
||||||
,*rightLine = NULL;
|
|
||||||
QPen m_pen;
|
|
||||||
void updateBorders();
|
|
||||||
|
|
||||||
|
|
||||||
};
|
|
||||||
#endif // WIDGET
|
|
@ -1,73 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>BorderFrameEditor</class>
|
|
||||||
<widget class="QWidget" name="BorderFrameEditor">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>150</width>
|
|
||||||
<height>100</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>BorderFrameEditor</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QGraphicsView" name="graphicsView">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>150</width>
|
|
||||||
<height>100</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="baseSize">
|
|
||||||
<size>
|
|
||||||
<width>150</width>
|
|
||||||
<height>100</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="verticalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalScrollBarPolicy">
|
|
||||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeAdjustPolicy">
|
|
||||||
<enum>QAbstractScrollArea::AdjustToContents</enum>
|
|
||||||
</property>
|
|
||||||
<property name="resizeAnchor">
|
|
||||||
<enum>QGraphicsView::AnchorViewCenter</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
Loading…
Reference in New Issue
Block a user