mirror of
https://github.com/fralx/LimeReport.git
synced 2024-12-23 16:22:58 +03:00
Report default units setting parameter has been added
This commit is contained in:
parent
0f227e803c
commit
ca458dc9a8
@ -57,7 +57,7 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QSe
|
||||
m_dialogDesignerManager(new DialogDesignerManager(this)),
|
||||
#endif
|
||||
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
|
||||
m_tabWidget = new LimeReportTabWidget(this);
|
||||
@ -74,10 +74,19 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QSe
|
||||
setLayout(mainLayout);
|
||||
|
||||
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();
|
||||
|
||||
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(loadFinished()), this, SLOT(slotReportLoaded()));
|
||||
@ -102,6 +111,8 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QSe
|
||||
#endif
|
||||
|
||||
m_themes.insert("Default","");
|
||||
m_localToEng.insert(QObject::tr("Dark"), "Dark");
|
||||
m_localToEng.insert(QObject::tr("Light"), "Light");
|
||||
initThemeIfExist("Dark", ":/qdarkstyle/style.qss");
|
||||
initThemeIfExist("Light", ":/qlightstyle/lightstyle.qss");
|
||||
}
|
||||
@ -135,8 +146,6 @@ QWidget *ReportDesignWidget::toolWindow(ReportDesignWidget::ToolWindowType windo
|
||||
return dialogDesignerManager()->resourcesEditor();
|
||||
case SignalSlotEditor:
|
||||
return dialogDesignerManager()->signalSlotEditor();
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -191,6 +200,7 @@ void ReportDesignWidget::saveState()
|
||||
m_settings->setValue("useGrid",m_useGrid);
|
||||
m_settings->setValue("theme",m_theme);
|
||||
m_settings->setValue("ScriptEditorState", m_scriptEditor->saveState());
|
||||
m_settings->setValue("DefaultUnits", m_defaultUnits);
|
||||
m_settings->endGroup();
|
||||
}
|
||||
|
||||
@ -264,10 +274,15 @@ void ReportDesignWidget::loadState()
|
||||
}
|
||||
|
||||
v = m_settings->value("ScriptEditorState");
|
||||
if (v.isValid()){
|
||||
if (v.isValid() && m_scriptEditor){
|
||||
m_scriptEditor->restoreState(v.toByteArray());
|
||||
}
|
||||
|
||||
v = m_settings->value("DefaultUnits");
|
||||
if (v.isValid()){
|
||||
m_defaultUnits = static_cast<BaseDesignIntf::UnitType>(v.toInt());
|
||||
}
|
||||
|
||||
m_settings->endGroup();
|
||||
applySettings();
|
||||
}
|
||||
@ -276,18 +291,13 @@ void ReportDesignWidget::loadState()
|
||||
void ReportDesignWidget::createTabs(){
|
||||
m_tabWidget->clear();
|
||||
int pageIndex = -1;
|
||||
for (int i = 0; i<m_report->pageCount();++i){
|
||||
// QGraphicsView* view = new QGraphicsView(qobject_cast<QWidget*>(this));
|
||||
for (int i = 0; i < m_report->pageCount(); ++i){
|
||||
PageView* view = new PageView(qobject_cast<QWidget*>(this));
|
||||
view->setBackgroundBrush(QBrush(Qt::gray));
|
||||
view->setFrameShape(QFrame::NoFrame);
|
||||
view->setScene(m_report->pageAt(i));
|
||||
view->setPageItem(m_report->pageAt(i)->pageItem());
|
||||
|
||||
// foreach(QGraphicsItem* item, m_report->pageAt(i)->selectedItems()){
|
||||
// item->setSelected(false);
|
||||
// }
|
||||
|
||||
m_report->pageAt(i)->clearSelection();
|
||||
|
||||
view->centerOn(0,0);
|
||||
@ -301,13 +311,6 @@ void ReportDesignWidget::createTabs(){
|
||||
|
||||
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()));
|
||||
m_scriptEditor->setReportEngine(m_report);
|
||||
pageIndex = m_tabWidget->addTab(m_scriptEditor,QIcon(),tr("Script"));
|
||||
@ -378,10 +381,12 @@ void ReportDesignWidget::connectPage(PageDesignIntf *page)
|
||||
emit activePageChanged();
|
||||
}
|
||||
|
||||
void ReportDesignWidget::createStartPage()
|
||||
PageDesignIntf* ReportDesignWidget::createStartPage()
|
||||
{
|
||||
m_report->appendPage("page1");
|
||||
createTabs();
|
||||
PageDesignIntf* page = m_report->appendPage("page1");
|
||||
page->pageItem()->setUnitType(m_defaultUnits);
|
||||
// createTabs();
|
||||
return page;
|
||||
}
|
||||
|
||||
void ReportDesignWidget::removeDatasource(const QString &datasourceName)
|
||||
@ -707,7 +712,6 @@ void ReportDesignWidget::initThemeIfExist(const QString &themeName, const QStrin
|
||||
theme.open(QIODevice::ReadOnly);
|
||||
QString styleSheet = theme.readAll();
|
||||
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.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()){
|
||||
m_horizontalGridStep = setting.horizontalGridStep();
|
||||
m_verticalGridStep = setting.verticalGridStep();
|
||||
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())){
|
||||
m_theme = m_localToEng.value(setting.theme());
|
||||
} else {
|
||||
|
@ -125,7 +125,8 @@ public:
|
||||
ReportDesignWidget(ReportEnginePrivateInterface* report, QSettings* settings,
|
||||
QMainWindow *mainWindow, QWidget *parent = 0);
|
||||
~ReportDesignWidget();
|
||||
void createStartPage();
|
||||
PageDesignIntf *createStartPage();
|
||||
void createTabs();
|
||||
void clear();
|
||||
DataSourceManager* dataManager();
|
||||
ScriptEngineManager* scriptManager();
|
||||
@ -240,7 +241,6 @@ signals:
|
||||
void pageAdded(PageDesignIntf* page);
|
||||
void pageDeleted();
|
||||
protected:
|
||||
void createTabs();
|
||||
#ifdef HAVE_QTDESIGNER_INTEGRATION
|
||||
void createNewDialogTab(const QString& dialogName,const QByteArray& description);
|
||||
#endif
|
||||
@ -274,6 +274,7 @@ private:
|
||||
QSettings* m_settings;
|
||||
QMap<QString, QString> m_themes;
|
||||
QMap<QString, QString> m_localToEng;
|
||||
BaseDesignIntf::UnitType m_defaultUnits;
|
||||
};
|
||||
|
||||
} // namespace LimeReport
|
||||
|
@ -677,6 +677,7 @@ void ReportDesignWindow::startNewReport()
|
||||
m_reportDesignWidget->saveState();
|
||||
m_reportDesignWidget->clear();
|
||||
m_reportDesignWidget->createStartPage();
|
||||
m_reportDesignWidget->createTabs();
|
||||
m_lblReportName->setText("");
|
||||
updateRedoUndo();
|
||||
m_reportDesignWidget->slotPagesLoadFinished();
|
||||
|
@ -75,6 +75,11 @@ QLocale::Language SettingDialog::designerLanguage()
|
||||
return QLocale().language();
|
||||
}
|
||||
|
||||
QString SettingDialog::reportUnits()
|
||||
{
|
||||
return ui->reportUnits->currentText();
|
||||
}
|
||||
|
||||
void SettingDialog::setSuppressAbsentFieldsAndVarsWarnings(bool value){
|
||||
ui->cbSuppressWarnings->setChecked(value);
|
||||
}
|
||||
@ -148,6 +153,17 @@ void SettingDialog::setDesignerThemes(QList<QString> themes, const QString &curr
|
||||
#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){
|
||||
m_settings = settings;
|
||||
if (m_settings){
|
||||
|
@ -26,6 +26,7 @@ public:
|
||||
QString theme();
|
||||
bool suppressAbsentFieldsAndVarsWarnings();
|
||||
QLocale::Language designerLanguage();
|
||||
QString reportUnits();
|
||||
void setSuppressAbsentFieldsAndVarsWarnings(bool value);
|
||||
void setHorizontalGridStep(int value);
|
||||
void setVerticalGridStep(int value);
|
||||
@ -35,6 +36,7 @@ public:
|
||||
void setTheme(const QString& theme);
|
||||
void setDesignerLanguages(QList<QLocale::Language> languages, QLocale::Language currentLanguage);
|
||||
void setDesignerThemes(QList<QString> themes, const QString& currentTheme);
|
||||
void setDesignerUnites(QList<QString> unitTypes, const QString currentUnitType);
|
||||
void setSettings(QSettings* settings);
|
||||
private slots:
|
||||
void on_bbOkCancel_accepted();
|
||||
|
@ -23,7 +23,7 @@
|
||||
<item>
|
||||
<widget class="QToolBox" name="toolBox">
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page">
|
||||
<property name="geometry">
|
||||
@ -174,6 +174,27 @@
|
||||
</item>
|
||||
</layout>
|
||||
</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>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
|
Binary file not shown.
@ -2727,6 +2727,10 @@ This preview is no longer valid.</source>
|
||||
<source>Theme</source>
|
||||
<translation>Тема</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Report units</source>
|
||||
<translation>Единицы измерения</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LimeReport::SubDetailBand</name>
|
||||
@ -3154,5 +3158,21 @@ This preview is no longer valid.</source>
|
||||
<source>''</source>
|
||||
<translation></translation>
|
||||
</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>
|
||||
</TS>
|
||||
|
Loading…
Reference in New Issue
Block a user