mirror of
https://github.com/fralx/LimeReport.git
synced 2025-12-14 00:41:02 +03:00
Fixed defined objectname changed after pasting items
This commit is contained in:
@@ -44,7 +44,7 @@ void ItemsBordersEditorWidget::setItemEvent(BaseDesignIntf* item)
|
||||
updateValues((BaseDesignIntf::BorderLines)borders.toInt());
|
||||
setEnabled(true);
|
||||
}
|
||||
itm = item;
|
||||
m_item = item;
|
||||
}
|
||||
|
||||
void ItemsBordersEditorWidget::properyChangedEvent(const QString& property, const QVariant& oldValue, const QVariant& newValue)
|
||||
@@ -72,21 +72,18 @@ void ItemsBordersEditorWidget::allBordesClicked()
|
||||
updateValues((BaseDesignIntf::BorderLines)borders);
|
||||
}
|
||||
|
||||
void ItemsBordersEditorWidget::buttonClicked(bool)
|
||||
{
|
||||
|
||||
}
|
||||
void ItemsBordersEditorWidget::buttonClicked(bool){}
|
||||
|
||||
void ItemsBordersEditorWidget::editBorderClicked()
|
||||
{
|
||||
lrbordereditor be;
|
||||
be.loadItem(itm);
|
||||
if(be.exec() == QDialog::Rejected)return;
|
||||
BorderEditor be;
|
||||
be.loadItem(m_item);
|
||||
if ( be.exec() == QDialog::Rejected ) return;
|
||||
updateValues(be.borderSides());
|
||||
itm->setBorderLinesFlags(be.borderSides());
|
||||
itm->setBorderLineSize(be.border_width());
|
||||
itm->setBorderStyle((LimeReport::BaseDesignIntf::BorderStyle)be.border_style());
|
||||
itm->setBorderColor(be.borderColor());
|
||||
m_item->setBorderLinesFlags(be.borderSides());
|
||||
m_item->setBorderLineSize(be.borderWidth());
|
||||
m_item->setBorderStyle((LimeReport::BaseDesignIntf::BorderStyle)be.borderStyle());
|
||||
m_item->setBorderColor(be.borderColor());
|
||||
}
|
||||
|
||||
void ItemsBordersEditorWidget::initEditor()
|
||||
@@ -129,7 +126,7 @@ void ItemsBordersEditorWidget::initEditor()
|
||||
addAction(m_allLines);
|
||||
addSeparator();
|
||||
m_BorderEditor = new QAction(tr("Edit border"),this);
|
||||
m_BorderEditor->setIcon(QIcon(":/report/images/allLines"));
|
||||
m_BorderEditor->setIcon(QIcon(":/report/images/borderEditor"));
|
||||
connect(m_BorderEditor,SIGNAL(triggered()),this,SLOT(editBorderClicked()));
|
||||
addAction(m_BorderEditor);
|
||||
|
||||
@@ -140,20 +137,20 @@ void ItemsBordersEditorWidget::initEditor()
|
||||
void ItemsBordersEditorWidget::updateValues(BaseDesignIntf::BorderLines borders)
|
||||
{
|
||||
m_changing = true;
|
||||
m_topLine->setChecked(borders&BaseDesignIntf::TopLine);
|
||||
m_bottomLine->setChecked(borders&BaseDesignIntf::BottomLine);
|
||||
m_leftLine->setChecked(borders&BaseDesignIntf::LeftLine);
|
||||
m_rightLine->setChecked(borders&BaseDesignIntf::RightLine);
|
||||
m_topLine->setChecked(borders & BaseDesignIntf::TopLine);
|
||||
m_bottomLine->setChecked(borders & BaseDesignIntf::BottomLine);
|
||||
m_leftLine->setChecked(borders & BaseDesignIntf::LeftLine);
|
||||
m_rightLine->setChecked(borders & BaseDesignIntf::RightLine);
|
||||
m_changing = false;
|
||||
}
|
||||
|
||||
BaseDesignIntf::BorderLines ItemsBordersEditorWidget::createBorders()
|
||||
{
|
||||
int borders = 0;
|
||||
borders += (m_topLine->isChecked())?BaseDesignIntf::TopLine:0;
|
||||
borders += (m_bottomLine->isChecked())?BaseDesignIntf::BottomLine:0;
|
||||
borders += (m_leftLine->isChecked())?BaseDesignIntf::LeftLine:0;
|
||||
borders += (m_rightLine->isChecked())?BaseDesignIntf::RightLine:0;
|
||||
borders += (m_topLine->isChecked()) ? BaseDesignIntf::TopLine:0;
|
||||
borders += (m_bottomLine->isChecked()) ? BaseDesignIntf::BottomLine:0;
|
||||
borders += (m_leftLine->isChecked()) ? BaseDesignIntf::LeftLine:0;
|
||||
borders += (m_rightLine->isChecked()) ? BaseDesignIntf::RightLine:0;
|
||||
return (BaseDesignIntf::BorderLines)borders;
|
||||
}
|
||||
|
||||
@@ -180,6 +177,21 @@ void ItemsBordersEditorWidgetForDesigner::allBordesClicked()
|
||||
ItemsBordersEditorWidget::allBordesClicked();
|
||||
m_reportEditor->setBorders(createBorders());
|
||||
}
|
||||
|
||||
void ItemsBordersEditorWidgetForDesigner::editBorderClicked()
|
||||
{
|
||||
BorderEditor be;
|
||||
be.loadItem(m_item);
|
||||
if ( be.exec() == QDialog::Rejected ) return;
|
||||
|
||||
m_reportEditor->setBordersExt(
|
||||
be.borderSides(),
|
||||
be.borderWidth(),
|
||||
(LimeReport::BaseDesignIntf::BorderStyle)be.borderStyle(),
|
||||
be.borderColor()
|
||||
);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
} //namespace LimeReport
|
||||
|
||||
@@ -49,11 +49,12 @@ protected slots:
|
||||
virtual void noBordesClicked();
|
||||
virtual void allBordesClicked();
|
||||
virtual void buttonClicked(bool);
|
||||
void editBorderClicked();
|
||||
virtual void editBorderClicked();
|
||||
protected:
|
||||
void setItemEvent(BaseDesignIntf *item);
|
||||
void properyChangedEvent(const QString &property, const QVariant &oldValue, const QVariant &newValue);
|
||||
BaseDesignIntf::BorderLines createBorders();
|
||||
BaseDesignIntf *m_item;
|
||||
private:
|
||||
void initEditor();
|
||||
void updateValues(BaseDesignIntf::BorderLines borders);
|
||||
@@ -66,7 +67,7 @@ private:
|
||||
QAction* m_BorderEditor;
|
||||
bool m_changing;
|
||||
int m_borders;
|
||||
BaseDesignIntf *itm;
|
||||
|
||||
};
|
||||
|
||||
#ifdef HAVE_REPORT_DESIGNER
|
||||
@@ -79,6 +80,7 @@ protected slots:
|
||||
void buttonClicked(bool);
|
||||
void noBordesClicked();
|
||||
void allBordesClicked();
|
||||
void editBorderClicked();
|
||||
private:
|
||||
ReportDesignWidget* m_reportEditor;
|
||||
|
||||
|
||||
@@ -2,181 +2,155 @@
|
||||
#include "ui_lrbordereditor.h"
|
||||
#include <QColorDialog>
|
||||
#include "lrbasedesignintf.h"
|
||||
lrbordereditor::lrbordereditor(QWidget *parent) :
|
||||
|
||||
namespace LimeReport{
|
||||
|
||||
BorderEditor::BorderEditor(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::lrbordereditor)
|
||||
ui(new Ui::BorderEditor),
|
||||
m_borderStyle(1),
|
||||
m_borderWidth(1)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
connect(ui->borderFrame,SIGNAL(borderSideClicked(int, bool)), this, SLOT(checkToolButtons(int, bool)));
|
||||
connect(
|
||||
ui->borderFrame, SIGNAL(borderSideClicked(LimeReport::BaseDesignIntf::BorderSide, bool)),
|
||||
this, SLOT(checkToolButtons(LimeReport::BaseDesignIntf::BorderSide, bool))
|
||||
);
|
||||
}
|
||||
|
||||
void lrbordereditor::loadItem(LimeReport::BaseDesignIntf *i)
|
||||
void BorderEditor::loadItem(LimeReport::BaseDesignIntf *item)
|
||||
{
|
||||
item = i;
|
||||
if(item->borderLines() & LimeReport::BaseDesignIntf::TopLine)
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::TopLine,true);
|
||||
m_item = item;
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::TopLine,
|
||||
item->borderLines() & LimeReport::BaseDesignIntf::TopLine);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::LeftLine,
|
||||
item->borderLines() & LimeReport::BaseDesignIntf::LeftLine);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::RightLine,
|
||||
item->borderLines() & LimeReport::BaseDesignIntf::RightLine);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::BottomLine,
|
||||
item->borderLines() & LimeReport::BaseDesignIntf::BottomLine);
|
||||
|
||||
}
|
||||
if(item->borderLines() & LimeReport::BaseDesignIntf::LeftLine)
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::LeftLine,true);
|
||||
|
||||
}
|
||||
if(item->borderLines() & LimeReport::BaseDesignIntf::RightLine)
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::RightLine,true);
|
||||
|
||||
}
|
||||
if(item->borderLines() & LimeReport::BaseDesignIntf::BottomLine)
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::BottomLine,true);
|
||||
}
|
||||
QPen pen;
|
||||
pen.setWidthF(item->borderLineSize());
|
||||
pen.setColor(item->borderColor());
|
||||
pen.setStyle((Qt::PenStyle)item->borderStyle());
|
||||
ui->borderFrame->setPen(pen);
|
||||
border_color = item->borderColor().name();
|
||||
m_borderColor = item->borderColor().name();
|
||||
ui->listWidget->setCurrentRow((Qt::PenStyle)item->borderStyle());
|
||||
ui->comboBox->setCurrentText(QString::number(item->borderLineSize()));
|
||||
borderWidth = ui->comboBox->currentText().toDouble();
|
||||
borderStyle =ui->listWidget->currentRow();
|
||||
ui->pushButton->setStyleSheet(QString("#pushButton{background-color:%1;}").arg(border_color));
|
||||
m_borderWidth = ui->comboBox->currentText().toDouble();
|
||||
m_borderStyle =ui->listWidget->currentRow();
|
||||
ui->colorIndicator->setStyleSheet(QString("background-color:%1;").arg(m_borderColor));
|
||||
}
|
||||
|
||||
LimeReport::BaseDesignIntf::BorderLines lrbordereditor::borderSides()
|
||||
LimeReport::BaseDesignIntf::BorderLines BorderEditor::borderSides()
|
||||
{
|
||||
int borders = 0;
|
||||
borders += (ui->topLine->isChecked())?LimeReport::BaseDesignIntf::TopLine:0;
|
||||
borders += (ui->bottomLine->isChecked())?LimeReport::BaseDesignIntf::BottomLine:0;
|
||||
borders += (ui->leftLine->isChecked())?LimeReport::BaseDesignIntf::LeftLine:0;
|
||||
borders += (ui->rightLine->isChecked())?LimeReport::BaseDesignIntf::RightLine:0;
|
||||
return (LimeReport::BaseDesignIntf::BorderLines)borders;
|
||||
borders += (ui->topLine->isChecked()) ? LimeReport::BaseDesignIntf::TopLine : 0;
|
||||
borders += (ui->bottomLine->isChecked()) ? LimeReport::BaseDesignIntf::BottomLine : 0;
|
||||
borders += (ui->leftLine->isChecked()) ? LimeReport::BaseDesignIntf::LeftLine : 0;
|
||||
borders += (ui->rightLine->isChecked()) ? LimeReport::BaseDesignIntf::RightLine : 0;
|
||||
return (LimeReport::BaseDesignIntf::BorderLines) borders;
|
||||
}
|
||||
|
||||
LimeReport::BaseDesignIntf::BorderStyle lrbordereditor::border_style()
|
||||
LimeReport::BaseDesignIntf::BorderStyle BorderEditor::borderStyle()
|
||||
{
|
||||
return (LimeReport::BaseDesignIntf::BorderStyle)borderStyle;
|
||||
return (LimeReport::BaseDesignIntf::BorderStyle) m_borderStyle;
|
||||
}
|
||||
|
||||
QString lrbordereditor::borderColor()
|
||||
QString BorderEditor::borderColor()
|
||||
{
|
||||
return border_color;
|
||||
return m_borderColor;
|
||||
}
|
||||
|
||||
double lrbordereditor::border_width()
|
||||
double BorderEditor::borderWidth()
|
||||
{
|
||||
return borderWidth;
|
||||
return m_borderWidth;
|
||||
}
|
||||
|
||||
lrbordereditor::~lrbordereditor()
|
||||
BorderEditor::~BorderEditor()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void lrbordereditor::on_listWidget_currentRowChanged(int currentRow)
|
||||
void BorderEditor::on_listWidget_currentRowChanged(int currentRow)
|
||||
{
|
||||
QPen pen = ui->borderFrame->pen();
|
||||
pen.setStyle((Qt::PenStyle)currentRow);
|
||||
borderStyle = currentRow;
|
||||
m_borderStyle = currentRow;
|
||||
ui->borderFrame->setPen(pen);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void lrbordereditor::on_comboBox_currentTextChanged(const QString &arg1)
|
||||
void BorderEditor::on_comboBox_currentTextChanged(const QString &arg1)
|
||||
{
|
||||
QPen pen = ui->borderFrame->pen();
|
||||
pen.setWidthF(arg1.toDouble());
|
||||
ui->borderFrame->setPen(pen);
|
||||
borderWidth = arg1.toDouble();
|
||||
m_borderWidth = arg1.toDouble();
|
||||
}
|
||||
|
||||
|
||||
void lrbordereditor::on_pushButton_clicked()
|
||||
void BorderEditor::checkToolButtons(LimeReport::BaseDesignIntf::BorderSide side, bool check)
|
||||
{
|
||||
QColorDialog cd(this);
|
||||
if(cd.exec() == QDialog::Rejected)return;
|
||||
QPen pen = ui->borderFrame->pen();
|
||||
pen.setColor(cd.selectedColor().name());
|
||||
border_color = pen.color().name();
|
||||
|
||||
ui->pushButton->setStyleSheet(QString("#pushButton{background-color:%1;}").arg(border_color));
|
||||
ui->borderFrame->setPen(pen);
|
||||
}
|
||||
|
||||
|
||||
void lrbordereditor::on_toolButton_4_clicked()
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::TopLine,true);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::BottomLine,true);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::LeftLine,true);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::RightLine,true);
|
||||
QPen pen = ui->borderFrame->pen();
|
||||
|
||||
ui->borderFrame->setPen(pen);
|
||||
}
|
||||
|
||||
|
||||
void lrbordereditor::on_noLines_clicked()
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::TopLine,false);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::BottomLine,false);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::LeftLine,false);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::RightLine,false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void lrbordereditor::on_topLine_clicked()
|
||||
{
|
||||
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::TopLine,ui->topLine->isChecked());
|
||||
|
||||
}
|
||||
|
||||
void lrbordereditor::checkToolButtons(int side, bool check)
|
||||
{
|
||||
|
||||
switch(side)
|
||||
{
|
||||
case LimeReport::BaseDesignIntf::BorderSide::TopLine:
|
||||
{
|
||||
ui->topLine->setChecked(check);
|
||||
}break;
|
||||
case LimeReport::BaseDesignIntf::BorderSide::BottomLine:
|
||||
{
|
||||
ui->bottomLine->setChecked(check);
|
||||
}break;
|
||||
case LimeReport::BaseDesignIntf::BorderSide::LeftLine:
|
||||
{
|
||||
ui->leftLine->setChecked(check);
|
||||
}break;
|
||||
case LimeReport::BaseDesignIntf::BorderSide::RightLine:
|
||||
{
|
||||
ui->rightLine->setChecked(check);
|
||||
}break;
|
||||
case BaseDesignIntf::BorderSide::TopLine:
|
||||
ui->topLine->setChecked(check);
|
||||
break;
|
||||
case BaseDesignIntf::BorderSide::BottomLine:
|
||||
ui->bottomLine->setChecked(check);
|
||||
break;
|
||||
case BaseDesignIntf::BorderSide::LeftLine:
|
||||
ui->leftLine->setChecked(check);
|
||||
break;
|
||||
case BaseDesignIntf::BorderSide::RightLine:
|
||||
ui->rightLine->setChecked(check);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void BorderEditor::on_topLine_clicked(bool checked){
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::TopLine, checked);
|
||||
}
|
||||
|
||||
void lrbordereditor::on_bottomLine_clicked()
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::BottomLine,ui->bottomLine->isChecked());
|
||||
void BorderEditor::on_bottomLine_clicked(bool checked){
|
||||
emit ui->borderFrame->borderSideClicked(BaseDesignIntf::BorderSide::BottomLine, checked);
|
||||
}
|
||||
|
||||
void BorderEditor::on_leftLine_clicked(bool checked){
|
||||
emit ui->borderFrame->borderSideClicked(BaseDesignIntf::BorderSide::LeftLine, checked);
|
||||
}
|
||||
|
||||
void BorderEditor::on_rightLine_clicked(bool checked){
|
||||
emit ui->borderFrame->borderSideClicked(BaseDesignIntf::BorderSide::RightLine, checked);
|
||||
}
|
||||
|
||||
|
||||
void lrbordereditor::on_leftLine_clicked()
|
||||
void BorderEditor::on_allLines_clicked()
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::LeftLine,ui->leftLine->isChecked());
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::TopLine, true);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::BottomLine, true);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::LeftLine, true);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::RightLine, true);
|
||||
}
|
||||
|
||||
void BorderEditor::on_noLines_clicked()
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::TopLine, false);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::BottomLine, false);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::LeftLine, false);
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::RightLine, false);
|
||||
}
|
||||
|
||||
|
||||
void lrbordereditor::on_toolButton_3_clicked()
|
||||
void BorderEditor::on_selectColor_clicked()
|
||||
{
|
||||
emit ui->borderFrame->borderSideClicked(LimeReport::BaseDesignIntf::BorderSide::RightLine,ui->rightLine->isChecked());
|
||||
QColorDialog cd(this);
|
||||
if(cd.exec() == QDialog::Rejected) return;
|
||||
QPen pen = ui->borderFrame->pen();
|
||||
pen.setColor(cd.selectedColor().name());
|
||||
m_borderColor = pen.color().name();
|
||||
ui->colorIndicator->setStyleSheet(QString("background-color:%1;").arg(m_borderColor));
|
||||
ui->borderFrame->setPen(pen);
|
||||
}
|
||||
|
||||
} // namespace LimeReport
|
||||
|
||||
@@ -3,54 +3,47 @@
|
||||
|
||||
#include <QDialog>
|
||||
#include "lrbasedesignintf.h"
|
||||
|
||||
namespace LimeReport{
|
||||
|
||||
namespace Ui {
|
||||
class lrbordereditor;
|
||||
class BorderEditor;
|
||||
}
|
||||
|
||||
class lrbordereditor : public QDialog
|
||||
|
||||
class LIMEREPORT_EXPORT BorderEditor : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit lrbordereditor(QWidget *parent = nullptr);
|
||||
void loadItem(LimeReport::BaseDesignIntf *i);
|
||||
explicit BorderEditor(QWidget *parent = nullptr);
|
||||
void loadItem(LimeReport::BaseDesignIntf *item);
|
||||
LimeReport::BaseDesignIntf::BorderLines borderSides();
|
||||
LimeReport::BaseDesignIntf::BorderStyle border_style();
|
||||
LimeReport::BaseDesignIntf::BorderStyle borderStyle();
|
||||
QString borderColor();
|
||||
double border_width();
|
||||
|
||||
|
||||
~lrbordereditor();
|
||||
double borderWidth();
|
||||
~BorderEditor();
|
||||
|
||||
private slots:
|
||||
void on_listWidget_currentRowChanged(int currentRow);
|
||||
|
||||
void on_comboBox_currentTextChanged(const QString &arg1);
|
||||
|
||||
void on_pushButton_clicked();
|
||||
|
||||
void on_toolButton_4_clicked();
|
||||
|
||||
void on_noLines_clicked();
|
||||
|
||||
void on_topLine_clicked();
|
||||
void checkToolButtons(int side, bool check);
|
||||
|
||||
void on_bottomLine_clicked();
|
||||
|
||||
void on_leftLine_clicked();
|
||||
|
||||
void on_toolButton_3_clicked();
|
||||
void on_topLine_clicked(bool checked);
|
||||
void on_bottomLine_clicked(bool checked);
|
||||
void on_leftLine_clicked(bool checked);
|
||||
void on_rightLine_clicked(bool checked);
|
||||
void on_allLines_clicked();
|
||||
void checkToolButtons(LimeReport::BaseDesignIntf::BorderSide side, bool check);
|
||||
void on_selectColor_clicked();
|
||||
|
||||
private:
|
||||
Ui::lrbordereditor *ui;
|
||||
LimeReport::BaseDesignIntf *item;
|
||||
QString border_color;
|
||||
int borderStyle = 1;
|
||||
double borderWidth = 1;
|
||||
|
||||
|
||||
Ui::BorderEditor *ui;
|
||||
LimeReport::BaseDesignIntf *m_item;
|
||||
QString m_borderColor;
|
||||
int m_borderStyle;
|
||||
double m_borderWidth;
|
||||
};
|
||||
|
||||
} // namespace LimeReport
|
||||
|
||||
#endif // LRBORDEREDITOR_H
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>lrbordereditor</class>
|
||||
<widget class="QDialog" name="lrbordereditor">
|
||||
<class>LimeReport::BorderEditor</class>
|
||||
<widget class="QDialog" name="LimeReport::BorderEditor">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>381</width>
|
||||
<height>311</height>
|
||||
<height>352</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -31,7 +31,7 @@
|
||||
<string>No lines</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../report.qrc">
|
||||
<iconset>
|
||||
<normaloff>:/report/images/noLines</normaloff>:/report/images/noLines</iconset>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
@@ -46,12 +46,12 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="toolButton_4">
|
||||
<widget class="QToolButton" name="allLines">
|
||||
<property name="text">
|
||||
<string>Outline</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../report.qrc">
|
||||
<iconset>
|
||||
<normaloff>:/report/images/allLines</normaloff>:/report/images/allLines</iconset>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
@@ -81,7 +81,7 @@
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../report.qrc">
|
||||
<iconset>
|
||||
<normaloff>:/report/images/topLine</normaloff>:/report/images/topLine</iconset>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
@@ -108,7 +108,7 @@
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../report.qrc">
|
||||
<iconset>
|
||||
<normaloff>:/report/images/bottomLine</normaloff>:/report/images/bottomLine</iconset>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
@@ -119,7 +119,7 @@
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="BorderFrameEditor" name="borderFrame" native="true"/>
|
||||
<widget class="LimeReport::BorderFrameEditor" name="borderFrame" native="true"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
@@ -129,7 +129,7 @@
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../report.qrc">
|
||||
<iconset>
|
||||
<normaloff>:/report/images/leftLine</normaloff>:/report/images/leftLine</iconset>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
@@ -156,7 +156,7 @@
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../report.qrc">
|
||||
<iconset>
|
||||
<normaloff>:/report/images/rightLine</normaloff>:/report/images/rightLine</iconset>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
@@ -319,14 +319,34 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">#pushButton{background-color: black;}</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Select...</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QWidget" name="colorIndicator" native="true">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="baseSize">
|
||||
<size>
|
||||
<width>10</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: rgb(0, 0, 0);</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="selectColor">
|
||||
<property name="text">
|
||||
<string>Select</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@@ -342,46 +362,43 @@
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>BorderFrameEditor</class>
|
||||
<class>LimeReport::BorderFrameEditor</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>borderframeeditor.h</header>
|
||||
<header>lrborderframeeditor.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources>
|
||||
<include location="../report.qrc"/>
|
||||
<include location="../report.qrc"/>
|
||||
</resources>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>lrbordereditor</receiver>
|
||||
<receiver>LimeReport::BorderEditor</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>253</x>
|
||||
<y>255</y>
|
||||
<x>119</x>
|
||||
<y>322</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>219</x>
|
||||
<y>275</y>
|
||||
<x>377</x>
|
||||
<y>309</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>lrbordereditor</receiver>
|
||||
<receiver>LimeReport::BorderEditor</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>258</y>
|
||||
<x>48</x>
|
||||
<y>334</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>345</x>
|
||||
<y>277</y>
|
||||
<x>66</x>
|
||||
<y>348</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
|
||||
181
limereport/items/lrborderframeeditor.cpp
Normal file
181
limereport/items/lrborderframeeditor.cpp
Normal file
@@ -0,0 +1,181 @@
|
||||
#include "lrborderframeeditor.h"
|
||||
#include "ui_lrborderframeeditor.h"
|
||||
#include <QPainter>
|
||||
#include <QGraphicsLineItem>
|
||||
#include <QDebug>
|
||||
#include <QMouseEvent>
|
||||
#include "lrbasedesignintf.h"
|
||||
#include "lrbordereditor.h"
|
||||
|
||||
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(LimeReport::BaseDesignIntf::BorderSide, bool)),
|
||||
this, SLOT(slotBorderSideClicked(LimeReport::BaseDesignIntf::BorderSide, bool))
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
BorderFrameEditor::~BorderFrameEditor()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void BorderFrameEditor::setPen(QPen pen)
|
||||
{
|
||||
m_pen = pen;
|
||||
updateBorders();
|
||||
}
|
||||
|
||||
QPen BorderFrameEditor::pen()
|
||||
{
|
||||
return m_pen;
|
||||
}
|
||||
|
||||
void BorderFrameEditor::setAllLines()
|
||||
{
|
||||
if (!topLine)
|
||||
topLine = createSideLine(LimeReport::BaseDesignIntf::BorderSide::TopLine);
|
||||
if (!leftLine)
|
||||
leftLine = createSideLine(LimeReport::BaseDesignIntf::BorderSide::LeftLine);
|
||||
if (!bottomLine)
|
||||
bottomLine = createSideLine(LimeReport::BaseDesignIntf::BorderSide::BottomLine);
|
||||
if (!rightLine)
|
||||
rightLine = createSideLine(LimeReport::BaseDesignIntf::BorderSide::RightLine);
|
||||
}
|
||||
|
||||
void BorderFrameEditor::unSetAllLines()
|
||||
{
|
||||
if (topLine){
|
||||
scene->removeItem(topLine);
|
||||
topLine = NULL;
|
||||
}
|
||||
if (leftLine){
|
||||
scene->removeItem(leftLine);
|
||||
leftLine = NULL;
|
||||
}
|
||||
if (bottomLine){
|
||||
scene->removeItem(bottomLine);
|
||||
bottomLine = NULL;
|
||||
}
|
||||
if (rightLine){
|
||||
scene->removeItem(rightLine);
|
||||
rightLine = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void BorderFrameEditor::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->x() >= 10 && event->y() <30)
|
||||
emit borderSideClicked(BaseDesignIntf::BorderSide::TopLine, !topLine);
|
||||
|
||||
if ((event->x() >= 10 && event->x() < 30) && (event->y() > 10))
|
||||
emit borderSideClicked(BaseDesignIntf::BorderSide::LeftLine, !leftLine);
|
||||
|
||||
if (event->x() >= 10 && (event->y() >80 && event->y() < rect().bottom()))
|
||||
emit borderSideClicked(BaseDesignIntf::BorderSide::BottomLine, !bottomLine);
|
||||
|
||||
if ((event->x() >= 130 && event->x() < rect().width()) && event->y() > 10)
|
||||
emit borderSideClicked(BaseDesignIntf::BorderSide::RightLine, !rightLine);
|
||||
}
|
||||
|
||||
void BorderFrameEditor::slotBorderSideClicked(BaseDesignIntf::BorderSide side, bool show)
|
||||
{
|
||||
|
||||
switch(side){
|
||||
|
||||
case BaseDesignIntf::BorderSide::TopLine:
|
||||
if (show){
|
||||
if (!topLine) topLine = createSideLine(side);
|
||||
} else {
|
||||
if (topLine) scene->removeItem(topLine);
|
||||
topLine = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
case BaseDesignIntf::LeftLine:
|
||||
if (show){
|
||||
if (!leftLine) leftLine = createSideLine(side);
|
||||
} else {
|
||||
if (leftLine) scene->removeItem(leftLine);
|
||||
leftLine = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
case BaseDesignIntf::BottomLine:
|
||||
if (show){
|
||||
if (!bottomLine) bottomLine = createSideLine(side);
|
||||
} else {
|
||||
if (bottomLine) scene->removeItem(bottomLine);
|
||||
bottomLine = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
case BaseDesignIntf::RightLine:
|
||||
if (show){
|
||||
if (!rightLine) rightLine = createSideLine(side);
|
||||
} else {
|
||||
if(rightLine) scene->removeItem(rightLine);
|
||||
rightLine = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
updateBorders();
|
||||
}
|
||||
|
||||
QGraphicsLineItem *BorderFrameEditor::createSideLine(LimeReport::BaseDesignIntf::BorderSide side)
|
||||
{
|
||||
switch(side){
|
||||
case BaseDesignIntf::BorderSide::TopLine:
|
||||
return scene->addLine(QLineF(10, 10, rect().width() - 10, 10), m_pen);
|
||||
case BaseDesignIntf::BorderSide::LeftLine:
|
||||
return scene->addLine(QLineF(10, 10, 10, rect().height() - 10), m_pen);
|
||||
case BaseDesignIntf::BorderSide::RightLine:
|
||||
return scene->addLine(QLineF(rect().width() - 10, 10 ,rect().width() - 10, rect().height() - 10), m_pen);
|
||||
case BaseDesignIntf::BorderSide::BottomLine:
|
||||
return scene->addLine(QLineF(10, rect().bottom() - 10, rect().width() - 10, rect().bottom() - 10), m_pen);
|
||||
}
|
||||
}
|
||||
|
||||
void BorderFrameEditor::updateBorders()
|
||||
{
|
||||
if (topLine) topLine->setPen(m_pen);
|
||||
if (leftLine) leftLine->setPen(m_pen);
|
||||
if (bottomLine) bottomLine->setPen(m_pen);
|
||||
if (rightLine) rightLine->setPen(m_pen);
|
||||
}
|
||||
|
||||
} //namespace LimeReport
|
||||
46
limereport/items/lrborderframeeditor.h
Normal file
46
limereport/items/lrborderframeeditor.h
Normal file
@@ -0,0 +1,46 @@
|
||||
#ifndef WIDGET
|
||||
#define WIDGET
|
||||
|
||||
#include <QWidget>
|
||||
#include <QGraphicsScene>
|
||||
#include <QGraphicsLineItem>
|
||||
#include "lrbasedesignintf.h"
|
||||
namespace LimeReport{
|
||||
|
||||
namespace Ui { class BorderFrameEditor; }
|
||||
|
||||
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(LimeReport::BaseDesignIntf::BorderSide side, bool show);
|
||||
private slots:
|
||||
void slotBorderSideClicked(LimeReport::BaseDesignIntf::BorderSide side, bool show);
|
||||
|
||||
private:
|
||||
QGraphicsLineItem *createSideLine(LimeReport::BaseDesignIntf::BorderSide side);
|
||||
void updateBorders();
|
||||
private:
|
||||
Ui::BorderFrameEditor *ui;
|
||||
QGraphicsScene *scene;
|
||||
QGraphicsLineItem *topLine = NULL
|
||||
,*bottomLine = NULL
|
||||
,*leftLine = NULL
|
||||
,*rightLine = NULL;
|
||||
QPen m_pen;
|
||||
|
||||
|
||||
|
||||
};
|
||||
} // namespace LimeReport
|
||||
#endif // WIDGET
|
||||
73
limereport/items/lrborderframeeditor.ui
Normal file
73
limereport/items/lrborderframeeditor.ui
Normal file
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>LimeReport::BorderFrameEditor</class>
|
||||
<widget class="QWidget" name="LimeReport::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>
|
||||
@@ -61,8 +61,13 @@ BaseDesignIntf *ImageItem::createSameTypeItem(QObject *owner, QGraphicsItem *par
|
||||
}
|
||||
|
||||
void ImageItem::loadPictureFromVariant(QVariant& data){
|
||||
//TODO: Migrate to QMetaType
|
||||
if (data.isValid()){
|
||||
if (data.type()==QVariant::Image){
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||
if (data.typeId() == QMetaType::QImage){
|
||||
#else
|
||||
if (data.type() == QVariant::Image){
|
||||
#endif
|
||||
m_picture = data.value<QImage>();
|
||||
} else {
|
||||
switch (m_format) {
|
||||
@@ -106,14 +111,14 @@ void ImageItem::processPopUpAction(QAction *action)
|
||||
ItemDesignIntf::processPopUpAction(action);
|
||||
}
|
||||
|
||||
QImage getFileByResourcePath(QString resourcePath){
|
||||
QImage getFileByResourcePath(QString resourcePath) {
|
||||
QFileInfo resourceFile(resourcePath);
|
||||
if (resourceFile.exists())
|
||||
return QImage(resourcePath);
|
||||
return QImage();
|
||||
}
|
||||
|
||||
QImage ImageItem::drawImage()
|
||||
QImage ImageItem::drawImage() const
|
||||
{
|
||||
if (image().isNull())
|
||||
return getFileByResourcePath(m_resourcePath);
|
||||
@@ -178,11 +183,22 @@ void ImageItem::updateItemSize(DataSourceManager* dataManager, RenderPass pass,
|
||||
m_resourcePath = expandDataFields(m_resourcePath, NoEscapeSymbols, dataManager);
|
||||
m_picture = QImage(m_resourcePath);
|
||||
} else if (!m_variable.isEmpty()){
|
||||
//TODO: Migrate to QMetaType
|
||||
QVariant data = dataManager->variable(m_variable);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||
if (data.typeId() == QMetaType::QString){
|
||||
#else
|
||||
if (data.type() == QVariant::String){
|
||||
#endif
|
||||
m_picture = QImage(data.toString());
|
||||
} else if (data.type() == QVariant::Image){
|
||||
loadPictureFromVariant(data);
|
||||
} else {
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||
if (data.typeId() == QMetaType::QImage){
|
||||
#else
|
||||
if (data.type() == QVariant::Image){
|
||||
#endif
|
||||
loadPictureFromVariant(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -348,7 +364,7 @@ void ImageItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||
}
|
||||
|
||||
if (shiftHeight > 0){
|
||||
point.setY(point.x()+shiftHeight/2);
|
||||
point.setY(point.y()+shiftHeight/2);
|
||||
} else {
|
||||
cutY = fabs(shiftHeight/2);
|
||||
cutHeigth += shiftHeight;
|
||||
@@ -394,7 +410,7 @@ void ImageItem::setImage(QImage value)
|
||||
}
|
||||
}
|
||||
|
||||
QImage ImageItem::image(){
|
||||
QImage ImageItem::image() const{
|
||||
return m_picture;
|
||||
}
|
||||
|
||||
@@ -423,3 +439,8 @@ void ImageItem::setFormat(Format format)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool LimeReport::ImageItem::isEmpty() const
|
||||
{
|
||||
return drawImage().isNull();
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
ImageItem(QObject *owner, QGraphicsItem *parent);
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
||||
void setImage(QImage value);
|
||||
QImage image();
|
||||
QImage image() const;
|
||||
void setResourcePath(const QString &value);
|
||||
QString resourcePath() const;
|
||||
QString datasource() const;
|
||||
@@ -108,7 +108,7 @@ protected:
|
||||
void loadPictureFromVariant(QVariant& data);
|
||||
void preparePopUpMenu(QMenu &menu);
|
||||
void processPopUpAction(QAction *action);
|
||||
QImage drawImage();
|
||||
QImage drawImage() const;
|
||||
private:
|
||||
QImage m_picture;
|
||||
bool m_useExternalPainter;
|
||||
@@ -121,8 +121,12 @@ private:
|
||||
bool m_keepAspectRatio;
|
||||
bool m_center;
|
||||
Format m_format;
|
||||
QString m_variable;
|
||||
QString m_variable;
|
||||
|
||||
|
||||
// BaseDesignIntf interface
|
||||
public:
|
||||
bool isEmpty() const override;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
#include "lrpageeditor.h"
|
||||
#include "ui_lrpageeditor.h"
|
||||
#include "lrpagedesignintf.h"
|
||||
#include "lrpageitemdesignintf.h"
|
||||
#include <QPushButton>
|
||||
#include <QPageSize>
|
||||
lrpageeditor::lrpageeditor(QWidget *parent, LimeReport::PageItemDesignIntf *page) :
|
||||
|
||||
namespace LimeReport{
|
||||
|
||||
PageEditor::PageEditor(QWidget *parent, LimeReport::PageItemDesignIntf *page) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::lrpageeditor)
|
||||
ui(new Ui::PageEditor)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
m_page = page;
|
||||
@@ -16,8 +20,8 @@ lrpageeditor::lrpageeditor(QWidget *parent, LimeReport::PageItemDesignIntf *page
|
||||
ui->format->addItem(pageSizes.key(i));
|
||||
}
|
||||
ui->format->setCurrentIndex(m_page->pageSize());
|
||||
ui->width->setValue(m_page->width() / LimeReport::Const::mmFACTOR);
|
||||
ui->height->setValue(m_page->height() / LimeReport::Const::mmFACTOR);
|
||||
ui->width->setValue(m_page->width() / m_page->unitFactor());
|
||||
ui->height->setValue(m_page->height() / m_page->unitFactor());
|
||||
ui->portrait->setChecked(m_page->pageOrientation() == LimeReport::PageItemDesignIntf::Portrait);
|
||||
ui->landscape->setChecked(m_page->pageOrientation() == LimeReport::PageItemDesignIntf::Landscape);
|
||||
//Margins
|
||||
@@ -33,18 +37,17 @@ lrpageeditor::lrpageeditor(QWidget *parent, LimeReport::PageItemDesignIntf *page
|
||||
ui->fullPage->setChecked(m_page->fullPage());
|
||||
}
|
||||
|
||||
lrpageeditor::~lrpageeditor()
|
||||
PageEditor::~PageEditor()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void lrpageeditor::applyChanges()
|
||||
void PageEditor::applyChanges()
|
||||
{
|
||||
m_page->setPageSize(static_cast<LimeReport::PageItemDesignIntf::PageSize>(ui->format->currentIndex()));
|
||||
m_page->setWidth(ui->width->value()* LimeReport::Const::mmFACTOR);
|
||||
m_page->setHeight(ui->height->value()* LimeReport::Const::mmFACTOR);
|
||||
m_page->setPageOrientation(ui->portrait->isChecked()?LimeReport::PageItemDesignIntf::Portrait : LimeReport::PageItemDesignIntf::Landscape);
|
||||
|
||||
m_page->setWidth(ui->width->value() * LimeReport::Const::mmFACTOR);
|
||||
m_page->setHeight(ui->height->value() * LimeReport::Const::mmFACTOR);
|
||||
m_page->setPageOrientation(ui->portrait->isChecked()? LimeReport::PageItemDesignIntf::Portrait : LimeReport::PageItemDesignIntf::Landscape);
|
||||
m_page->setTopMargin(ui->marginTop->value());
|
||||
m_page->setBottomMargin(ui->marginBottom->value());
|
||||
m_page->setRightMargin(ui->marginRight->value());
|
||||
@@ -52,53 +55,56 @@ void lrpageeditor::applyChanges()
|
||||
m_page->setDropPrinterMargins(ui->dropPrinterMargins->isChecked());
|
||||
ui->endlessHeight->setChecked(ui->endlessHeight->isChecked());
|
||||
m_page->setExtendedHeight(ui->extendedHeight->value());
|
||||
ui->width->setValue(m_page->getItemWidth());
|
||||
ui->height->setValue(m_page->getItemHeight());
|
||||
}
|
||||
|
||||
void lrpageeditor::on_buttonBox_accepted()
|
||||
QSizeF PageEditor::getRectByPageSize(const LimeReport::PageItemDesignIntf::PageSize& size)
|
||||
{
|
||||
applyChanges();
|
||||
accept();
|
||||
|
||||
}
|
||||
|
||||
QSizeF lrpageeditor::getRectByPageSize(const LimeReport::PageItemDesignIntf::PageSize& size)
|
||||
{
|
||||
if (size != LimeReport::PageItemDesignIntf::Custom) {
|
||||
if (size != PageItemDesignIntf::Custom) {
|
||||
QPrinter printer;
|
||||
printer.setOutputFormat(QPrinter::PdfFormat);
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 1))
|
||||
printer.setOrientation(ui->portrait->isChecked()?QPrinter::Portrait : QPrinter::Landscape);
|
||||
printer.setOrientation(ui->portrait->isChecked() ? QPrinter::Portrait : QPrinter::Landscape);
|
||||
printer.setPaperSize((QPrinter::PageSize)size);
|
||||
return QSizeF(printer.paperSize(QPrinter::Millimeter).width() * 10,
|
||||
printer.paperSize(QPrinter::Millimeter).height() * 10);
|
||||
return QSizeF(printer.paperSize(QPrinter::Millimeter).width() * m_page->unitFactor(),
|
||||
printer.paperSize(QPrinter::Millimeter).height() * m_page->unitFactor());
|
||||
|
||||
#else
|
||||
QPageSize pageSize = QPageSize((QPageSize::PageSizeId)size);
|
||||
qreal width = pageSize.size(QPageSize::Millimeter).width() * 10;
|
||||
qreal height = pageSize.size(QPageSize::Millimeter).height() * 10;
|
||||
return QSizeF(pageOrientation() == Portrait ? width : height,
|
||||
pageOrientation() == Portrait ? height : width);
|
||||
|
||||
// printer.setPageOrientation((QPageLayout::Orientation)pageOrientation());
|
||||
// printer.setPageSize(QPageSize((QPageSize::PageSizeId)size));
|
||||
// return QSizeF(printer.pageLayout().pageSize().size(QPageSize::Millimeter).width() * 10,
|
||||
// printer.pageLayout().pageSize().size(QPageSize::Millimeter).height() * 10);
|
||||
printer.setPageOrientation((QPageLayout::Orientation)m_page->pageOrientation());
|
||||
printer.setPageSize(QPageSize((QPageSize::PageSizeId)size));
|
||||
return QSizeF(printer.pageLayout().pageSize().size(QPageSize::Millimeter).width() * m_page->unitFactor(),
|
||||
printer.pageLayout().pageSize().size(QPageSize::Millimeter).height() * m_page->unitFactor());
|
||||
#endif
|
||||
}
|
||||
|
||||
else {
|
||||
return QSizeF(width(),height());
|
||||
} else {
|
||||
return QSizeF(m_page->getItemWidth(), m_page->getItemHeight());
|
||||
}
|
||||
}
|
||||
void lrpageeditor::on_format_currentIndexChanged(int index)
|
||||
|
||||
void PageEditor::on_format_currentIndexChanged(int index)
|
||||
{
|
||||
QPageSize ps = *new QPageSize();
|
||||
if(ui->format->currentText() != "Custom")
|
||||
{
|
||||
QSizeF pageSize = getRectByPageSize(static_cast<LimeReport::PageItemDesignIntf::PageSize>(index));
|
||||
ui->width->setValue(pageSize.width()/10);
|
||||
ui->height->setValue(pageSize.height()/10);
|
||||
ui->width->setValue(pageSize.width() / m_page->unitFactor());
|
||||
ui->height->setValue(pageSize.height() / m_page->unitFactor());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void PageEditor::on_buttonBox_clicked(QAbstractButton *button)
|
||||
{
|
||||
switch(ui->buttonBox->buttonRole(button)){
|
||||
case QDialogButtonBox::ApplyRole:
|
||||
applyChanges();
|
||||
break;
|
||||
case QDialogButtonBox::AcceptRole:
|
||||
applyChanges();
|
||||
accept();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -4,28 +4,33 @@
|
||||
#include <QDialog>
|
||||
#include "lrpageitemdesignintf.h"
|
||||
#include <QPushButton>
|
||||
namespace LimeReport{
|
||||
|
||||
namespace Ui {
|
||||
class lrpageeditor;
|
||||
class PageEditor;
|
||||
}
|
||||
|
||||
class lrpageeditor : public QDialog
|
||||
class LIMEREPORT_EXPORT PageEditor : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit lrpageeditor(QWidget *parent = nullptr,LimeReport::PageItemDesignIntf *page = nullptr);
|
||||
~lrpageeditor();
|
||||
explicit PageEditor(QWidget *parent = nullptr,LimeReport::PageItemDesignIntf *page = nullptr);
|
||||
~PageEditor();
|
||||
|
||||
private slots:
|
||||
void on_buttonBox_accepted();
|
||||
// void on_buttonBox_accepted();
|
||||
void on_format_currentIndexChanged(int index);
|
||||
void on_buttonBox_clicked(QAbstractButton *button);
|
||||
|
||||
private:
|
||||
Ui::lrpageeditor *ui;
|
||||
Ui::PageEditor *ui;
|
||||
LimeReport::PageItemDesignIntf* m_page;
|
||||
|
||||
void applyChanges();
|
||||
QSizeF getRectByPageSize(const LimeReport::PageItemDesignIntf::PageSize& size);
|
||||
};
|
||||
|
||||
} // namespace LimeReport
|
||||
|
||||
#endif // LRPAGEEDITOR_H
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>lrpageeditor</class>
|
||||
<widget class="QDialog" name="lrpageeditor">
|
||||
<class>LimeReport::PageEditor</class>
|
||||
<widget class="QDialog" name="LimeReport::PageEditor">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>306</width>
|
||||
<height>322</height>
|
||||
<height>356</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -131,6 +131,19 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
@@ -297,7 +310,7 @@
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
<set>QDialogButtonBox::Apply|QDialogButtonBox::Close|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -305,22 +318,6 @@
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>lrpageeditor</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>325</x>
|
||||
<y>312</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>endlessHeight</sender>
|
||||
<signal>clicked(bool)</signal>
|
||||
@@ -328,12 +325,12 @@
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>60</x>
|
||||
<y>50</y>
|
||||
<x>72</x>
|
||||
<y>81</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>130</x>
|
||||
<y>85</y>
|
||||
<x>131</x>
|
||||
<y>134</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
|
||||
@@ -107,11 +107,22 @@ void SVGItem::updateItemSize(DataSourceManager *dataManager, RenderPass pass, in
|
||||
m_resourcePath = expandDataFields(m_resourcePath, NoEscapeSymbols, dataManager);
|
||||
m_image = imageFromResource(m_resourcePath);
|
||||
} else if (!m_variable.isEmpty()){
|
||||
//TODO: Migrate to QMetaType
|
||||
QVariant data = dataManager->variable(m_variable);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||
if (data.typeId() == QMetaType::QString){
|
||||
#else
|
||||
if (data.type() == QVariant::String){
|
||||
#endif
|
||||
m_image = imageFromResource(data.toString());
|
||||
} else if (data.type() == QVariant::ByteArray) {
|
||||
m_image = data.value<QByteArray>() ;
|
||||
} else {
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
|
||||
if (data.typeId() == QMetaType::QByteArray) {
|
||||
#else
|
||||
if (data.type() == QVariant::ByteArray) {
|
||||
#endif
|
||||
m_image = data.value<QByteArray>() ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,10 +276,6 @@ void TextItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* style, Q
|
||||
BaseDesignIntf::paint(painter, style, widget);
|
||||
}
|
||||
|
||||
QString TextItem::content() const{
|
||||
return m_strText;
|
||||
}
|
||||
|
||||
void TextItem::Init()
|
||||
{
|
||||
m_autoWidth = NoneAutoWidth;
|
||||
@@ -299,14 +295,8 @@ void TextItem::setContent(const QString &value)
|
||||
{
|
||||
if (m_strText.compare(value)!=0){
|
||||
QString oldValue = m_strText;
|
||||
if (m_trimValue)
|
||||
m_strText=value.trimmed();
|
||||
else
|
||||
m_strText=value;
|
||||
|
||||
// if (itemMode() == DesignMode && (autoHeight())){
|
||||
// initTextSizes();
|
||||
// }
|
||||
m_strText = value;
|
||||
|
||||
if (!isLoading()){
|
||||
if (autoHeight() || autoWidth() || hasFollower())
|
||||
@@ -317,6 +307,10 @@ void TextItem::setContent(const QString &value)
|
||||
}
|
||||
}
|
||||
|
||||
QString TextItem::content() const{
|
||||
return m_strText;
|
||||
}
|
||||
|
||||
void TextItem::updateItemSize(DataSourceManager* dataManager, RenderPass pass, int maxHeight)
|
||||
{
|
||||
|
||||
@@ -395,6 +389,7 @@ void TextItem::setTextFont(TextPtr text, const QFont& value) const {
|
||||
void TextItem::adaptFontSize(TextPtr text) const{
|
||||
QFont _font = transformToSceneFont(font());
|
||||
do{
|
||||
// qApp->processEvents();
|
||||
setTextFont(text,_font);
|
||||
if (_font.pixelSize()>2)
|
||||
_font.setPixelSize(_font.pixelSize()-1);
|
||||
@@ -493,29 +488,43 @@ QString TextItem::formatFieldValue()
|
||||
}
|
||||
}
|
||||
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
|
||||
switch (value.type()) {
|
||||
case QVariant::Date:
|
||||
case QVariant::DateTime:
|
||||
return formatDateTime(value.toDateTime());
|
||||
case QVariant::Double:
|
||||
return formatNumber(value.toDouble());
|
||||
default:
|
||||
return value.toString();
|
||||
case QVariant::Date:
|
||||
case QVariant::DateTime:
|
||||
return formatDateTime(value.toDateTime());
|
||||
case QVariant::Double:
|
||||
return formatNumber(value.toDouble());
|
||||
default:
|
||||
return value.toString();
|
||||
}
|
||||
#else
|
||||
switch (value.typeId()) {
|
||||
case QMetaType::QDate:
|
||||
case QMetaType::QDateTime:
|
||||
return formatDateTime(value.toDateTime());
|
||||
case QMetaType::Double:
|
||||
return formatNumber(value.toDouble());
|
||||
default:
|
||||
return value.toString();
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
TextItem::TextPtr TextItem::textDocument() const
|
||||
{
|
||||
TextPtr text(new QTextDocument);
|
||||
QString content = m_trimValue ? m_strText.trimmed() : m_strText;
|
||||
|
||||
if (allowHTML())
|
||||
if (isReplaceCarriageReturns()){
|
||||
text->setHtml(replaceReturns(m_strText));
|
||||
text->setHtml(replaceReturns(content));
|
||||
} else {
|
||||
text->setHtml(m_strText);
|
||||
text->setHtml(content);
|
||||
}
|
||||
else
|
||||
text->setPlainText(m_strText);
|
||||
text->setPlainText(content);
|
||||
|
||||
QTextOption to;
|
||||
to.setAlignment(m_alignment);
|
||||
@@ -785,6 +794,7 @@ void TextItem::setTrimValue(bool value)
|
||||
{
|
||||
bool oldValue = m_trimValue;
|
||||
m_trimValue = value;
|
||||
update();
|
||||
notify("trimValue",oldValue,value);
|
||||
}
|
||||
|
||||
@@ -827,7 +837,7 @@ void TextItem::expandContent(DataSourceManager* dataManager, RenderPass pass)
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 1))
|
||||
QRegExp rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName));
|
||||
#else
|
||||
QRegularExpression rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName));
|
||||
QRegularExpression rx = getNamedVariableRegEx(variableName);
|
||||
#endif
|
||||
if (context.contains(rx) && pass == FirstPass){
|
||||
backupContent();
|
||||
|
||||
Reference in New Issue
Block a user