mirror of
https://github.com/fralx/LimeReport.git
synced 2025-04-01 07:03:43 +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