Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-20 09:24:01

0001 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 // Qt-Security score:significant reason:default
0004 
0005 #ifndef QFONTCOMBOBOX_H
0006 #define QFONTCOMBOBOX_H
0007 
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qcombobox.h>
0010 #include <QtGui/qfontdatabase.h>
0011 
0012 QT_REQUIRE_CONFIG(fontcombobox);
0013 
0014 QT_BEGIN_NAMESPACE
0015 
0016 class QFontComboBoxPrivate;
0017 
0018 class Q_WIDGETS_EXPORT QFontComboBox : public QComboBox
0019 {
0020     Q_OBJECT
0021     Q_PROPERTY(QFontDatabase::WritingSystem writingSystem READ writingSystem WRITE setWritingSystem)
0022     Q_PROPERTY(FontFilters fontFilters READ fontFilters WRITE setFontFilters)
0023     Q_PROPERTY(QFont currentFont READ currentFont WRITE setCurrentFont NOTIFY currentFontChanged)
0024 
0025 public:
0026     explicit QFontComboBox(QWidget *parent = nullptr);
0027     ~QFontComboBox();
0028 
0029     void setWritingSystem(QFontDatabase::WritingSystem);
0030     QFontDatabase::WritingSystem writingSystem() const;
0031 
0032     enum FontFilter {
0033         AllFonts = 0,
0034         ScalableFonts = 0x1,
0035         NonScalableFonts = 0x2,
0036         MonospacedFonts = 0x4,
0037         ProportionalFonts = 0x8
0038     };
0039     Q_DECLARE_FLAGS(FontFilters, FontFilter)
0040     Q_FLAG(FontFilters)
0041 
0042     void setFontFilters(FontFilters filters);
0043     FontFilters fontFilters() const;
0044 
0045     QFont currentFont() const;
0046     QSize sizeHint() const override;
0047 
0048     void setSampleTextForSystem(QFontDatabase::WritingSystem writingSystem, const QString &sampleText);
0049     QString sampleTextForSystem(QFontDatabase::WritingSystem writingSystem) const;
0050 
0051     void setSampleTextForFont(const QString &fontFamily, const QString &sampleText);
0052     QString sampleTextForFont(const QString &fontFamily) const;
0053 
0054     void setDisplayFont(const QString &fontFamily, const QFont &font);
0055     std::optional<QFont> displayFont(const QString &fontFamily) const;
0056 
0057 public Q_SLOTS:
0058     void setCurrentFont(const QFont &f);
0059 
0060 Q_SIGNALS:
0061     void currentFontChanged(const QFont &f);
0062 
0063 protected:
0064     bool event(QEvent *e) override;
0065 
0066 private:
0067     Q_DISABLE_COPY(QFontComboBox)
0068     Q_DECLARE_PRIVATE(QFontComboBox)
0069 };
0070 
0071 Q_DECLARE_OPERATORS_FOR_FLAGS(QFontComboBox::FontFilters)
0072 
0073 QT_END_NAMESPACE
0074 
0075 #endif