14 namespace swift::gui::menus
16 const QStringList &CFontMenu::getLogCategories()
22 CFontMenu::CFontMenu(QWidget *widget, Qt::ShortcutContext shortcutContext) :
IMenuDelegate(widget), m_widget(widget)
24 m_fontDialogAction.reset(
new QAction(CIcons::font16(),
"Font",
this));
25 QObject::connect(m_fontDialogAction.data(), &QAction::triggered,
this, &CFontMenu::changeFontDialog);
28 m_fontSizePlusShortcut->setContext(shortcutContext);
29 QObject::connect(m_fontSizePlusShortcut, &QShortcut::activated,
this, &CFontMenu::onFontSizePlus);
32 m_fontSizeMinusShortcut->setContext(shortcutContext);
33 QObject::connect(m_fontSizeMinusShortcut, &QShortcut::activated,
this, &CFontMenu::onFontSizeMinus);
36 m_fontResetShortcut->setContext(shortcutContext);
37 QObject::connect(m_fontResetShortcut, &QShortcut::activated,
this, &CFontMenu::onFontReset);
50 return QList<QShortcut *>({ m_fontResetShortcut, m_fontSizeMinusShortcut, m_fontSizePlusShortcut });
53 void CFontMenu::changeFontDialog()
55 Q_ASSERT_X(m_widget, Q_FUNC_INFO,
"No widget");
59 m_dialog->setModal(
true);
61 m_dialog->setFont(m_widget->font());
62 const int r = m_dialog->exec();
63 if (r == QDialog::Rejected) {
return; }
64 const QString qss(m_dialog->getQss());
65 m_widget->setStyleSheet(qss);
68 void CFontMenu::onFontSizePlus()
70 if (!m_widget) {
return; }
71 const int pt = m_widget->font().pointSize() + 1;
72 if (pt > 24) {
return; }
74 m_widget->setStyleSheet(
"");
80 void CFontMenu::onFontSizeMinus()
82 if (!m_widget) {
return; }
83 const int pt = m_widget->font().pointSize() - 1;
84 if (pt < 5) {
return; }
86 m_widget->setStyleSheet(
"");
92 void CFontMenu::onFontReset()
94 Q_ASSERT_X(m_widget, Q_FUNC_INFO,
"No widget");
95 m_widget->setStyleSheet(
"");
static const QKeySequence & keyFontPlus()
Font plus.
static const QKeySequence & keyFontReset()
Font reset.
static const QKeySequence & keyFontMinus()
Font minus.
static QString asStylesheet(const QString &fontFamily, const QString &fontSize, const QString &fontStyle, const QString &fontWeight, const QString &fontColorString={})
Parameters as stylesheet.
static const QString & guiComponent()
GUI components.
High level reusable GUI components.
Free functions in swift::misc.