Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qdesigner_appearanceoptions.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
5#include "ui_qdesigner_appearanceoptions.h"
6
9
10#include <QtDesigner/abstractformeditor.h>
11#include <QtCore/qtimer.h>
12#include <QtCore/qdebug.h>
13
15
16// ---------------- AppearanceOptions
18{
19 settings.setUiMode(uiMode);
20 settings.setToolWindowFont(toolWindowFontSettings);
21}
22
24{
25 uiMode = settings.uiMode();
26 toolWindowFontSettings = settings.toolWindowFont();
27}
28
29// ---------------- QDesignerAppearanceOptionsWidget
30QDesignerAppearanceOptionsWidget::QDesignerAppearanceOptionsWidget(QWidget *parent) :
31 QWidget(parent),
32 m_ui(new QT_PREPEND_NAMESPACE(Ui)::AppearanceOptionsWidget)
33{
34 m_ui->setupUi(this);
35
36 m_ui->m_uiModeCombo->addItem(tr("Docked Window"), QVariant(DockedMode));
37 m_ui->m_uiModeCombo->addItem(tr("Multiple Top-Level Windows"), QVariant(TopLevelMode));
38 connect(m_ui->m_uiModeCombo, &QComboBox::currentIndexChanged,
39 this, &QDesignerAppearanceOptionsWidget::slotUiModeComboChanged);
40
41 m_ui->m_fontPanel->setCheckable(true);
42 m_ui->m_fontPanel->setTitle(tr("Toolwindow Font"));
43
44}
45
50
52{
53 return static_cast<UIMode>(m_ui->m_uiModeCombo->itemData(m_ui->m_uiModeCombo->currentIndex()).toInt());
54}
55
57{
59 rc.uiMode = uiMode();
60 rc.toolWindowFontSettings.m_font = m_ui->m_fontPanel->selectedFont();
61 rc.toolWindowFontSettings.m_useFont = m_ui->m_fontPanel->isChecked();
62 rc.toolWindowFontSettings.m_writingSystem = m_ui->m_fontPanel->writingSystem();
63 return rc;
64}
65
67{
68 m_initialUIMode = ao.uiMode;
69 m_ui->m_uiModeCombo->setCurrentIndex(m_ui->m_uiModeCombo->findData(QVariant(ao.uiMode)));
70 m_ui->m_fontPanel->setWritingSystem(ao.toolWindowFontSettings.m_writingSystem);
71 m_ui->m_fontPanel->setSelectedFont(ao.toolWindowFontSettings.m_font);
72 m_ui->m_fontPanel->setChecked(ao.toolWindowFontSettings.m_useFont);
73}
74
75void QDesignerAppearanceOptionsWidget::slotUiModeComboChanged()
76{
77 emit uiModeChanged(m_initialUIMode != uiMode());
78}
79
80// ----------- QDesignerAppearanceOptionsPage
81QDesignerAppearanceOptionsPage::QDesignerAppearanceOptionsPage(QDesignerFormEditorInterface *core) :
82 m_core(core)
83{
84}
85
87{
88 //: Tab in preferences dialog
89 return QCoreApplication::translate("QDesignerAppearanceOptionsPage", "Appearance");
90}
91
93{
94 m_widget = new QDesignerAppearanceOptionsWidget(parent);
95 m_initialOptions.fromSettings(QDesignerSettings(m_core));
96 m_widget->setAppearanceOptions(m_initialOptions);
97 return m_widget;
98}
99
101{
102 if (m_widget) {
103 const AppearanceOptions newOptions = m_widget->appearanceOptions();
104 if (newOptions != m_initialOptions) {
105 QDesignerSettings settings(m_core);
106 newOptions.toSettings(settings);
107 m_initialOptions = newOptions;
108 emit settingsChanged();
109 }
110 }
111}
112
116
117QT_END_NAMESPACE
void setAppearanceOptions(const AppearanceOptions &ao)
void setUiMode(UIMode mode)
QDesignerSettings(QDesignerFormEditorInterface *core)
friend class QWidget
Definition qpainter.h:421
UIMode
@ TopLevelMode
@ DockedMode
Combined button and popup list for selecting options.
void toSettings(QDesignerSettings &) const
void fromSettings(const QDesignerSettings &)