/*************************************************************************** * This file is part of the Lime Report project * * Copyright (C) 2021 by Alexander Arin * * arin_a@bk.ru * * * ** GNU General Public License Usage ** * * * This library is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version. * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * * * ** GNU Lesser General Public License ** * * * This library is free software: you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as * * published by the Free Software Foundation, either version 3 of the * * License, or (at your option) any later version. * * You should have received a copy of the GNU Lesser General Public * * License along with this library. * * If not, see . * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * ****************************************************************************/ #ifndef LRFONTEDITORWIDGET_H #define LRFONTEDITORWIDGET_H #include #include #include #include #ifdef HAVE_REPORT_DESIGNER #include "lrreportdesignwidget.h" #endif #include "lritemeditorwidget.h" namespace LimeReport{ class FontEditorWidget :public ItemEditorWidget{ Q_OBJECT public: explicit FontEditorWidget(const QString &title, QWidget *parent = 0); bool ignoreSlots() const; protected: void setItemEvent(BaseDesignIntf *item); QFontComboBox* fontNameEditor(){return m_fontNameEditor;} void initEditor(); protected slots: virtual void slotFontChanged(const QFont&); virtual void slotFontSizeChanged(const QString& value); virtual void slotFontAttribsChanged(bool); void slotPropertyChanged(const QString& objectName, const QString& property, const QVariant &oldValue, const QVariant &newValue); protected: QFont resFont(){return m_resFont;} private: void updateValues(const QFont &font); QFontComboBox* m_fontNameEditor; QComboBox* m_fontSizeEditor; QStringListModel m_fontSizeModel; QAction* m_fontBold; QAction* m_fontItalic; QAction* m_fontUnderline; bool m_ignoreSlots; QFont m_resFont; }; class FontEditorWidgetForPage : public FontEditorWidget{ Q_OBJECT public: explicit FontEditorWidgetForPage(PageDesignIntf* page, const QString &title, QWidget *parent = 0) : FontEditorWidget(title, parent), m_page(page){} protected slots: virtual void slotFontChanged(const QFont& font); virtual void slotFontSizeChanged(const QString& value); virtual void slotFontAttribsChanged(bool value); private: PageDesignIntf* m_page; }; #ifdef HAVE_REPORT_DESIGNER class FontEditorWidgetForDesigner : public FontEditorWidget{ Q_OBJECT public: explicit FontEditorWidgetForDesigner(ReportDesignWidget* reportEditor, const QString &title, QWidget *parent = 0) : FontEditorWidget(title, parent), m_reportEditor(reportEditor){initEditor();} protected: void initEditor(); protected slots: virtual void slotFontChanged(const QFont& font); virtual void slotFontSizeChanged(const QString& value); virtual void slotFontAttribsChanged(bool value); private: ReportDesignWidget* m_reportEditor; }; #endif } //namespace LimeReport #endif // LRFONTEDITORWIDGET_H