0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-24 08:34:38 +03:00

Report default units setting parameter has been added

This commit is contained in:
Arin Alexander 2019-06-30 22:00:01 +03:00
parent 0f227e803c
commit ca458dc9a8
8 changed files with 103 additions and 26 deletions

View File

@ -57,7 +57,7 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QSe
m_dialogDesignerManager(new DialogDesignerManager(this)), m_dialogDesignerManager(new DialogDesignerManager(this)),
#endif #endif
m_mainWindow(mainWindow), m_verticalGridStep(10), m_horizontalGridStep(10), m_useGrid(false), m_mainWindow(mainWindow), m_verticalGridStep(10), m_horizontalGridStep(10), m_useGrid(false),
m_dialogChanged(false), m_theme("Default"), m_settings(settings) m_dialogChanged(false), m_theme("Default"), m_settings(settings), m_defaultUnits(BaseDesignIntf::Millimeters)
{ {
#ifdef HAVE_QT4 #ifdef HAVE_QT4
m_tabWidget = new LimeReportTabWidget(this); m_tabWidget = new LimeReportTabWidget(this);
@ -74,10 +74,19 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QSe
setLayout(mainLayout); setLayout(mainLayout);
m_report=report; m_report=report;
if (!m_report->pageCount()) m_report->appendPage("page1");
m_settings->beginGroup("DesignerWidget");
QVariant v = m_settings->value("DefaultUnits");
if (v.isValid()){
m_defaultUnits = static_cast<BaseDesignIntf::UnitType>(v.toInt());
}
m_settings->endGroup();
if (!m_report->pageCount()){
createStartPage();
}
createTabs(); createTabs();
connect(dynamic_cast<QObject*>(m_report), SIGNAL(pagesLoadFinished()),this,SLOT(slotPagesLoadFinished())); connect(dynamic_cast<QObject*>(m_report), SIGNAL(pagesLoadFinished()),this,SLOT(slotPagesLoadFinished()));
connect(dynamic_cast<QObject*>(m_report), SIGNAL(cleared()), this, SIGNAL(cleared())); connect(dynamic_cast<QObject*>(m_report), SIGNAL(cleared()), this, SIGNAL(cleared()));
connect(dynamic_cast<QObject*>(m_report), SIGNAL(loadFinished()), this, SLOT(slotReportLoaded())); connect(dynamic_cast<QObject*>(m_report), SIGNAL(loadFinished()), this, SLOT(slotReportLoaded()));
@ -102,6 +111,8 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QSe
#endif #endif
m_themes.insert("Default",""); m_themes.insert("Default","");
m_localToEng.insert(QObject::tr("Dark"), "Dark");
m_localToEng.insert(QObject::tr("Light"), "Light");
initThemeIfExist("Dark", ":/qdarkstyle/style.qss"); initThemeIfExist("Dark", ":/qdarkstyle/style.qss");
initThemeIfExist("Light", ":/qlightstyle/lightstyle.qss"); initThemeIfExist("Light", ":/qlightstyle/lightstyle.qss");
} }
@ -135,8 +146,6 @@ QWidget *ReportDesignWidget::toolWindow(ReportDesignWidget::ToolWindowType windo
return dialogDesignerManager()->resourcesEditor(); return dialogDesignerManager()->resourcesEditor();
case SignalSlotEditor: case SignalSlotEditor:
return dialogDesignerManager()->signalSlotEditor(); return dialogDesignerManager()->signalSlotEditor();
default:
return 0;
} }
} }
@ -191,6 +200,7 @@ void ReportDesignWidget::saveState()
m_settings->setValue("useGrid",m_useGrid); m_settings->setValue("useGrid",m_useGrid);
m_settings->setValue("theme",m_theme); m_settings->setValue("theme",m_theme);
m_settings->setValue("ScriptEditorState", m_scriptEditor->saveState()); m_settings->setValue("ScriptEditorState", m_scriptEditor->saveState());
m_settings->setValue("DefaultUnits", m_defaultUnits);
m_settings->endGroup(); m_settings->endGroup();
} }
@ -264,10 +274,15 @@ void ReportDesignWidget::loadState()
} }
v = m_settings->value("ScriptEditorState"); v = m_settings->value("ScriptEditorState");
if (v.isValid()){ if (v.isValid() && m_scriptEditor){
m_scriptEditor->restoreState(v.toByteArray()); m_scriptEditor->restoreState(v.toByteArray());
} }
v = m_settings->value("DefaultUnits");
if (v.isValid()){
m_defaultUnits = static_cast<BaseDesignIntf::UnitType>(v.toInt());
}
m_settings->endGroup(); m_settings->endGroup();
applySettings(); applySettings();
} }
@ -276,18 +291,13 @@ void ReportDesignWidget::loadState()
void ReportDesignWidget::createTabs(){ void ReportDesignWidget::createTabs(){
m_tabWidget->clear(); m_tabWidget->clear();
int pageIndex = -1; int pageIndex = -1;
for (int i = 0; i<m_report->pageCount();++i){ for (int i = 0; i < m_report->pageCount(); ++i){
// QGraphicsView* view = new QGraphicsView(qobject_cast<QWidget*>(this));
PageView* view = new PageView(qobject_cast<QWidget*>(this)); PageView* view = new PageView(qobject_cast<QWidget*>(this));
view->setBackgroundBrush(QBrush(Qt::gray)); view->setBackgroundBrush(QBrush(Qt::gray));
view->setFrameShape(QFrame::NoFrame); view->setFrameShape(QFrame::NoFrame);
view->setScene(m_report->pageAt(i)); view->setScene(m_report->pageAt(i));
view->setPageItem(m_report->pageAt(i)->pageItem()); view->setPageItem(m_report->pageAt(i)->pageItem());
// foreach(QGraphicsItem* item, m_report->pageAt(i)->selectedItems()){
// item->setSelected(false);
// }
m_report->pageAt(i)->clearSelection(); m_report->pageAt(i)->clearSelection();
view->centerOn(0,0); view->centerOn(0,0);
@ -301,13 +311,6 @@ void ReportDesignWidget::createTabs(){
m_scriptEditor = new ScriptEditor(this); m_scriptEditor = new ScriptEditor(this);
// m_settings->beginGroup("DesignerWidget");
// QVariant v = m_settings->value("ScriptEditorState");
// if (v.isValid()){
// m_scriptEditor->restoreState(v.toByteArray());
// }
// m_settings->endGroup();
connect(m_scriptEditor, SIGNAL(textChanged()), this, SLOT(slotScriptTextChanged())); connect(m_scriptEditor, SIGNAL(textChanged()), this, SLOT(slotScriptTextChanged()));
m_scriptEditor->setReportEngine(m_report); m_scriptEditor->setReportEngine(m_report);
pageIndex = m_tabWidget->addTab(m_scriptEditor,QIcon(),tr("Script")); pageIndex = m_tabWidget->addTab(m_scriptEditor,QIcon(),tr("Script"));
@ -378,10 +381,12 @@ void ReportDesignWidget::connectPage(PageDesignIntf *page)
emit activePageChanged(); emit activePageChanged();
} }
void ReportDesignWidget::createStartPage() PageDesignIntf* ReportDesignWidget::createStartPage()
{ {
m_report->appendPage("page1"); PageDesignIntf* page = m_report->appendPage("page1");
createTabs(); page->pageItem()->setUnitType(m_defaultUnits);
// createTabs();
return page;
} }
void ReportDesignWidget::removeDatasource(const QString &datasourceName) void ReportDesignWidget::removeDatasource(const QString &datasourceName)
@ -707,7 +712,6 @@ void ReportDesignWidget::initThemeIfExist(const QString &themeName, const QStrin
theme.open(QIODevice::ReadOnly); theme.open(QIODevice::ReadOnly);
QString styleSheet = theme.readAll(); QString styleSheet = theme.readAll();
m_themes.insert(themeName, styleSheet); m_themes.insert(themeName, styleSheet);
m_localToEng.insert(QObject::tr(themeName.toLatin1()), themeName);
} }
} }
@ -786,10 +790,22 @@ void ReportDesignWidget::editSetting()
setting.setDesignerThemes(themes, QObject::tr(m_theme.toLatin1())); setting.setDesignerThemes(themes, QObject::tr(m_theme.toLatin1()));
setting.setDesignerLanguages(m_report->designerLanguages(), m_report->currentDesignerLanguage()); setting.setDesignerLanguages(m_report->designerLanguages(), m_report->currentDesignerLanguage());
QList<QString> unitTypes;
unitTypes << QObject::tr("Millimeters") << QObject::tr("Inches");
setting.setDesignerUnites(unitTypes,
m_defaultUnits == BaseDesignIntf::Millimeters ?
QObject::tr("Millimeters") :
QObject::tr("Inches"));
if (setting.exec()){ if (setting.exec()){
m_horizontalGridStep = setting.horizontalGridStep(); m_horizontalGridStep = setting.horizontalGridStep();
m_verticalGridStep = setting.verticalGridStep(); m_verticalGridStep = setting.verticalGridStep();
m_defaultFont = setting.defaultFont(); m_defaultFont = setting.defaultFont();
if (setting.reportUnits().compare(QObject::tr("Millimeters")) == 0)
m_defaultUnits = BaseDesignIntf::Millimeters;
else {
m_defaultUnits = BaseDesignIntf::Inches;
}
if (m_localToEng.contains(setting.theme())){ if (m_localToEng.contains(setting.theme())){
m_theme = m_localToEng.value(setting.theme()); m_theme = m_localToEng.value(setting.theme());
} else { } else {

View File

@ -125,7 +125,8 @@ public:
ReportDesignWidget(ReportEnginePrivateInterface* report, QSettings* settings, ReportDesignWidget(ReportEnginePrivateInterface* report, QSettings* settings,
QMainWindow *mainWindow, QWidget *parent = 0); QMainWindow *mainWindow, QWidget *parent = 0);
~ReportDesignWidget(); ~ReportDesignWidget();
void createStartPage(); PageDesignIntf *createStartPage();
void createTabs();
void clear(); void clear();
DataSourceManager* dataManager(); DataSourceManager* dataManager();
ScriptEngineManager* scriptManager(); ScriptEngineManager* scriptManager();
@ -240,7 +241,6 @@ signals:
void pageAdded(PageDesignIntf* page); void pageAdded(PageDesignIntf* page);
void pageDeleted(); void pageDeleted();
protected: protected:
void createTabs();
#ifdef HAVE_QTDESIGNER_INTEGRATION #ifdef HAVE_QTDESIGNER_INTEGRATION
void createNewDialogTab(const QString& dialogName,const QByteArray& description); void createNewDialogTab(const QString& dialogName,const QByteArray& description);
#endif #endif
@ -274,6 +274,7 @@ private:
QSettings* m_settings; QSettings* m_settings;
QMap<QString, QString> m_themes; QMap<QString, QString> m_themes;
QMap<QString, QString> m_localToEng; QMap<QString, QString> m_localToEng;
BaseDesignIntf::UnitType m_defaultUnits;
}; };
} // namespace LimeReport } // namespace LimeReport

View File

@ -677,6 +677,7 @@ void ReportDesignWindow::startNewReport()
m_reportDesignWidget->saveState(); m_reportDesignWidget->saveState();
m_reportDesignWidget->clear(); m_reportDesignWidget->clear();
m_reportDesignWidget->createStartPage(); m_reportDesignWidget->createStartPage();
m_reportDesignWidget->createTabs();
m_lblReportName->setText(""); m_lblReportName->setText("");
updateRedoUndo(); updateRedoUndo();
m_reportDesignWidget->slotPagesLoadFinished(); m_reportDesignWidget->slotPagesLoadFinished();

View File

@ -75,6 +75,11 @@ QLocale::Language SettingDialog::designerLanguage()
return QLocale().language(); return QLocale().language();
} }
QString SettingDialog::reportUnits()
{
return ui->reportUnits->currentText();
}
void SettingDialog::setSuppressAbsentFieldsAndVarsWarnings(bool value){ void SettingDialog::setSuppressAbsentFieldsAndVarsWarnings(bool value){
ui->cbSuppressWarnings->setChecked(value); ui->cbSuppressWarnings->setChecked(value);
} }
@ -148,6 +153,17 @@ void SettingDialog::setDesignerThemes(QList<QString> themes, const QString &curr
#endif #endif
} }
void SettingDialog::setDesignerUnites(QList<QString> unitTypes, const QString currentUnitType)
{
ui->reportUnits->clear();
ui->reportUnits->addItems(unitTypes);
#ifdef HAVE_QT4
ui->cbTheme->setCurrentIndex(ui->cbTheme->findText(currentUnitType));
#else
ui->reportUnits->setCurrentText(currentUnitType);
#endif
}
void SettingDialog::setSettings(QSettings* settings){ void SettingDialog::setSettings(QSettings* settings){
m_settings = settings; m_settings = settings;
if (m_settings){ if (m_settings){

View File

@ -26,6 +26,7 @@ public:
QString theme(); QString theme();
bool suppressAbsentFieldsAndVarsWarnings(); bool suppressAbsentFieldsAndVarsWarnings();
QLocale::Language designerLanguage(); QLocale::Language designerLanguage();
QString reportUnits();
void setSuppressAbsentFieldsAndVarsWarnings(bool value); void setSuppressAbsentFieldsAndVarsWarnings(bool value);
void setHorizontalGridStep(int value); void setHorizontalGridStep(int value);
void setVerticalGridStep(int value); void setVerticalGridStep(int value);
@ -35,6 +36,7 @@ public:
void setTheme(const QString& theme); void setTheme(const QString& theme);
void setDesignerLanguages(QList<QLocale::Language> languages, QLocale::Language currentLanguage); void setDesignerLanguages(QList<QLocale::Language> languages, QLocale::Language currentLanguage);
void setDesignerThemes(QList<QString> themes, const QString& currentTheme); void setDesignerThemes(QList<QString> themes, const QString& currentTheme);
void setDesignerUnites(QList<QString> unitTypes, const QString currentUnitType);
void setSettings(QSettings* settings); void setSettings(QSettings* settings);
private slots: private slots:
void on_bbOkCancel_accepted(); void on_bbOkCancel_accepted();

View File

@ -23,7 +23,7 @@
<item> <item>
<widget class="QToolBox" name="toolBox"> <widget class="QToolBox" name="toolBox">
<property name="currentIndex"> <property name="currentIndex">
<number>2</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="page"> <widget class="QWidget" name="page">
<property name="geometry"> <property name="geometry">
@ -174,6 +174,27 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Report units</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="reportUnits">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item> <item>
<spacer name="verticalSpacer_2"> <spacer name="verticalSpacer_2">
<property name="orientation"> <property name="orientation">

Binary file not shown.

View File

@ -2727,6 +2727,10 @@ This preview is no longer valid.</source>
<source>Theme</source> <source>Theme</source>
<translation>Тема</translation> <translation>Тема</translation>
</message> </message>
<message>
<source>Report units</source>
<translation>Единицы измерения</translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::SubDetailBand</name> <name>LimeReport::SubDetailBand</name>
@ -3154,5 +3158,21 @@ This preview is no longer valid.</source>
<source>&apos;&apos;</source> <source>&apos;&apos;</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Millimeters</source>
<translation>Миллиметры</translation>
</message>
<message>
<source>Inches</source>
<translation>Дюймы</translation>
</message>
<message>
<source>Dark</source>
<translation>Темная</translation>
</message>
<message>
<source>Light</source>
<translation>Светлая</translation>
</message>
</context> </context>
</TS> </TS>