0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-24 16:44:39 +03:00

Designer interface setting added

This commit is contained in:
Arin Alexander 2018-04-10 16:28:48 +03:00
parent c2d731eef9
commit e9c44f0eb6
8 changed files with 136 additions and 3 deletions

View File

@ -113,6 +113,10 @@ public:
bool setReportLanguage(QLocale::Language language); bool setReportLanguage(QLocale::Language language);
Qt::LayoutDirection previewLayoutDirection(); Qt::LayoutDirection previewLayoutDirection();
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection); void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
void addDesignerLanguage(QLocale::Language language);
void removeDesignerLanguage(QLocale::Language language);
QList<QLocale::Language>* designerLanguages();
QLocale::Language currentDesignerLanguage();
signals: signals:
void renderStarted(); void renderStarted();
void renderFinished(); void renderFinished();

View File

@ -712,6 +712,7 @@ void ReportDesignWidget::editSetting()
setting.setDefaultFont(m_defaultFont); setting.setDefaultFont(m_defaultFont);
setting.setSuppressAbsentFieldsAndVarsWarnings(m_report->suppressFieldAndVarError()); setting.setSuppressAbsentFieldsAndVarsWarnings(m_report->suppressFieldAndVarError());
setting.setUseDarkTheme(m_useDarkTheme); setting.setUseDarkTheme(m_useDarkTheme);
setting.setDesignerLanguages(m_report->designerLanguages(), m_report->currentDesignerLanguage());
if (setting.exec()){ if (setting.exec()){
m_horizontalGridStep = setting.horizontalGridStep(); m_horizontalGridStep = setting.horizontalGridStep();
@ -719,6 +720,7 @@ void ReportDesignWidget::editSetting()
m_defaultFont = setting.defaultFont(); m_defaultFont = setting.defaultFont();
m_useDarkTheme = setting.userDarkTheme(); m_useDarkTheme = setting.userDarkTheme();
m_report->setSuppressFieldAndVarError(setting.suppressAbsentFieldsAndVarsWarnings()); m_report->setSuppressFieldAndVarError(setting.suppressAbsentFieldsAndVarsWarnings());
m_report->setCurrentDesignerLanguage(setting.designerLanguage());
applySettings(); applySettings();
} }
} }

View File

@ -950,6 +950,42 @@ void ReportEnginePrivate::activateLanguage(QLocale::Language language)
} }
} }
QString ReportEnginePrivate::getLanguagesDir() const
{
return m_languagesDir;
}
void ReportEnginePrivate::setLanguagesDir(const QString& languagesDir)
{
m_languagesDir = languagesDir;
}
void ReportEnginePrivate::addDesignerLanguage(QLocale::Language language)
{
if (!m_designerLanguages.contains(language))
m_designerLanguages.append(language);
}
void ReportEnginePrivate::removeDesignerLanguage(QLocale::Language language)
{
m_designerLanguages.removeAll(language);
}
QList<QLocale::Language>* ReportEnginePrivate::designerLanguages()
{
return &m_designerLanguages;
}
QLocale::Language ReportEnginePrivate::currentDesignerLanguage()
{
return m_currentDesignerLanguage;
}
void ReportEnginePrivate::setCurrentDesignerLanguage(QLocale::Language language)
{
m_currentDesignerLanguage = language;
}
QString ReportEnginePrivate::styleSheet() const QString ReportEnginePrivate::styleSheet() const
{ {
return m_styleSheet; return m_styleSheet;
@ -1237,6 +1273,30 @@ bool ReportEngine::setReportLanguage(QLocale::Language language)
return d->setReportLanguage(language); return d->setReportLanguage(language);
} }
void ReportEngine::addDesignerLanguage(QLocale::Language language)
{
Q_D(ReportEngine);
d->addDesignerLanguage(language);
}
void ReportEngine::removeDesignerLanguage(QLocale::Language language)
{
Q_D(ReportEngine);
d->removeDesignerLanguage(language);
}
QList<QLocale::Language>*ReportEngine::designerLanguages()
{
Q_D(ReportEngine);
return d->designerLanguages();
}
QLocale::Language ReportEngine::currentDesignerLanguage()
{
Q_D(ReportEngine);
return d->currentDesignerLanguage();
}
void ReportEngine::setShowProgressDialog(bool value) void ReportEngine::setShowProgressDialog(bool value)
{ {
Q_D(ReportEngine); Q_D(ReportEngine);

View File

@ -113,6 +113,10 @@ public:
bool setReportLanguage(QLocale::Language language); bool setReportLanguage(QLocale::Language language);
Qt::LayoutDirection previewLayoutDirection(); Qt::LayoutDirection previewLayoutDirection();
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection); void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
void addDesignerLanguage(QLocale::Language language);
void removeDesignerLanguage(QLocale::Language language);
QList<QLocale::Language>* designerLanguages();
QLocale::Language currentDesignerLanguage();
signals: signals:
void renderStarted(); void renderStarted();
void renderFinished(); void renderFinished();

View File

@ -33,6 +33,7 @@
#include <QObject> #include <QObject>
#include <QSharedPointer> #include <QSharedPointer>
#include <QMainWindow> #include <QMainWindow>
#include <QLocale>
#include "lrreportengine.h" #include "lrreportengine.h"
#include "lrcollection.h" #include "lrcollection.h"
#include "lrglobal.h" #include "lrglobal.h"
@ -83,6 +84,9 @@ public:
virtual void setSuppressFieldAndVarError(bool suppressFieldAndVarError) = 0; virtual void setSuppressFieldAndVarError(bool suppressFieldAndVarError) = 0;
virtual void setStyleSheet(const QString& styleSheet) = 0; virtual void setStyleSheet(const QString& styleSheet) = 0;
virtual QString styleSheet() const = 0; virtual QString styleSheet() const = 0;
virtual QList<QLocale::Language>* designerLanguages() = 0;
virtual QLocale::Language currentDesignerLanguage() = 0;
virtual void setCurrentDesignerLanguage(QLocale::Language language) = 0;
}; };
class ReportEnginePrivate : public QObject, public ICollectionContainer, public ITranslationContainer, class ReportEnginePrivate : public QObject, public ICollectionContainer, public ITranslationContainer,
@ -178,7 +182,13 @@ public:
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection); void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
QString styleSheet() const; QString styleSheet() const;
void setStyleSheet(const QString &styleSheet); void setStyleSheet(const QString &styleSheet);
QString getLanguagesDir() const;
void setLanguagesDir(const QString& languagesDir);
void addDesignerLanguage(QLocale::Language language);
void removeDesignerLanguage(QLocale::Language language);
QList<QLocale::Language>* designerLanguages();
QLocale::Language currentDesignerLanguage();
void setCurrentDesignerLanguage(QLocale::Language language);
signals: signals:
void pagesLoadFinished(); void pagesLoadFinished();
void datasourceCollectionLoadFinished(const QString& collectionName); void datasourceCollectionLoadFinished(const QString& collectionName);
@ -247,6 +257,9 @@ private:
Qt::LayoutDirection m_previewLayoutDirection; Qt::LayoutDirection m_previewLayoutDirection;
LimeReportPluginInterface* m_designerFactory; LimeReportPluginInterface* m_designerFactory;
QString m_styleSheet; QString m_styleSheet;
QString m_languagesDir;
QList<QLocale::Language> m_designerLanguages;
QLocale::Language m_currentDesignerLanguage;
}; };
} }

View File

@ -47,6 +47,15 @@ bool SettingDialog::suppressAbsentFieldsAndVarsWarnings()
return ui->cbSuppressWarnings->isChecked(); return ui->cbSuppressWarnings->isChecked();
} }
QLocale::Language SettingDialog::designerLanguage()
{
foreach (QLocale::Language language, *m_designerLanguages) {
if (ui->designerLanguage->currentText().compare(QLocale::languageToString(language)) == 0)
return language;
}
return QLocale().language();
}
void SettingDialog::setSuppressAbsentFieldsAndVarsWarnings(bool value){ void SettingDialog::setSuppressAbsentFieldsAndVarsWarnings(bool value){
ui->cbSuppressWarnings->setChecked(value); ui->cbSuppressWarnings->setChecked(value);
} }
@ -72,4 +81,14 @@ void SettingDialog::setUseDarkTheme(bool value)
ui->cbbUseDarkTheme->setChecked(value); ui->cbbUseDarkTheme->setChecked(value);
} }
void SettingDialog::setDesignerLanguages(QList<QLocale::Language>* languages, QLocale::Language currentLanguage)
{
m_designerLanguages = languages;
ui->designerLanguage->addItem(QLocale::languageToString(currentLanguage));
foreach (QLocale::Language language, *languages) {
if (language != currentLanguage)
ui->designerLanguage->addItem(QLocale::languageToString(language));
}
}
} // namespace LimeReport } // namespace LimeReport

View File

@ -2,6 +2,7 @@
#define LRSETTINGDIALOG_H #define LRSETTINGDIALOG_H
#include <QDialog> #include <QDialog>
#include <QLocale>
namespace LimeReport{ namespace LimeReport{
@ -21,13 +22,16 @@ public:
QFont defaultFont(); QFont defaultFont();
bool userDarkTheme(); bool userDarkTheme();
bool suppressAbsentFieldsAndVarsWarnings(); bool suppressAbsentFieldsAndVarsWarnings();
QLocale::Language designerLanguage();
void setSuppressAbsentFieldsAndVarsWarnings(bool value); void setSuppressAbsentFieldsAndVarsWarnings(bool value);
void setHorizontalGridStep(int value); void setHorizontalGridStep(int value);
void setVerticalGridStep(int value); void setVerticalGridStep(int value);
void setDefaultFont(const QFont& value); void setDefaultFont(const QFont& value);
void setUseDarkTheme(bool value); void setUseDarkTheme(bool value);
void setDesignerLanguages(QList<QLocale::Language>* languages, QLocale::Language currentLanguage);
private: private:
Ui::SettingDialog *ui; Ui::SettingDialog *ui;
QList<QLocale::Language>* m_designerLanguages;
}; };
} // namespace LimeReport } // namespace LimeReport

View File

@ -6,10 +6,16 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>351</width> <width>397</width>
<height>318</height> <height>378</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>Designer setting</string> <string>Designer setting</string>
</property> </property>
@ -108,6 +114,27 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Language</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="designerLanguage">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item> <item>
<widget class="QCheckBox" name="cbbUseDarkTheme"> <widget class="QCheckBox" name="cbbUseDarkTheme">
<property name="text"> <property name="text">