swift
stylesheetutility.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2014 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_GUI_STYLESHEETUTILITY_H
7 #define SWIFT_GUI_STYLESHEETUTILITY_H
8 
9 #include <QFileSystemWatcher>
10 #include <QMap>
11 #include <QObject>
12 #include <QString>
13 #include <QStringList>
14 #include <QStyle>
15 
16 #include "gui/swiftguiexport.h"
17 
18 class QFont;
19 class QWidget;
20 
21 namespace swift::gui
22 {
24  class SWIFT_GUI_EXPORT CStyleSheetUtility : public QObject
25  {
26  Q_OBJECT
27 
28  public:
30  explicit CStyleSheetUtility(QObject *parent = nullptr);
31 
33  static const QStringList &getLogCategories();
34 
36  QString style(const QString &fileName) const;
37 
39  QString styles(const QStringList &fileNames) const;
40 
42  bool containsStyle(const QString &fileName) const;
43 
45  bool updateFont(const QFont &font);
46 
48  bool updateFont(const QString &qss);
49 
51  bool updateFont(const QString &fontFamily, const QString &fontSize, const QString &fontStyle,
52  const QString &fontWeight, const QString &fontColorString);
53 
55  bool resetFont();
56 
58  QString fontColorString() const;
59 
61  bool read();
62 
64  static QString fontStyle(const QString &combinedStyleAndWeight);
65 
67  static QString fontWeight(const QString &combinedStyleAndWeight);
68 
70  static const QString &fileNameFonts();
71 
73  static const QString &fileNameFontsModified();
74 
76  bool deleteModifiedFontFile();
77 
79  static const QString &fileNameInfoBar();
80 
82  static const QString &fileNameNavigator();
83 
85  static const QString &fileNameDockWidgetTab();
86 
88  static const QString &fileNameStandardWidget();
89 
91  static const QString &fileNameAndPathStandardWidget();
92 
94  static const QString &fileNameTextMessage();
95 
97  static const QString &fileNameFilterDialog();
98 
100  static const QString &fileNameSwiftStandardGui();
101 
103  static const QString &fileNameAndPathSwiftStandardGui();
104 
106  static const QString &fileNameSwiftCore();
107 
109  static const QString &fileNameSwiftData();
110 
112  static const QString &fileNameSwiftLauncher();
113 
115  static const QStringList &fontWeights();
116 
118  static const QStringList &fontStyles();
119 
121  static const QString &transparentBackgroundColor();
122 
124  static const QString &fontStyleAsString(const QFont &font);
125 
127  static const QString &fontWeightAsString(const QFont &font);
128 
130  static QString fontAsCombinedWeightStyle(const QFont &font);
131 
133  static QString asStylesheet(const QString &fontFamily, const QString &fontSize, const QString &fontStyle,
134  const QString &fontWeight, const QString &fontColorString = {});
135 
137  static QString asStylesheet(const QWidget *widget, int pointSize = -1);
138 
141  static bool useStyleSheetInDerivedWidget(QWidget *derivedWidget,
142  QStyle::PrimitiveElement element = QStyle::PE_Widget);
143 
145  static QString styleForIconCheckBox(const QString &checkedIcon, const QString &uncheckedIcon,
146  const QString &width = "16px", const QString &height = "16px");
147 
149  static QString concatStyles(const QString &style1, const QString &style2);
150 
152  static void setQSysInfoProperties(QWidget *widget, bool withChildWidgets);
153 
154  signals:
158 
159  private:
161  void qssDirectoryChanged(const QString &file);
162 
164  static QString getQssFileName(const QString &fileName);
165 
167  static bool qssFileExists(const QString &filename);
168 
169  QMap<QString, QString> m_styleSheets;
170  QFileSystemWatcher m_fileWatcher { this };
171  };
172 } // namespace swift::gui
173 #endif // SWIFT_GUI_STYLESHEETUTILITY_H
Reads and provides style sheets.
void styleSheetsChanged()
Sheets have been changed.
GUI related classes.
#define SWIFT_GUI_EXPORT
Export a class or function from the library.