OSDN Git Service

6ab49d49a6720a05a276c8d264ff535c079aa0a7
[qt-creator-jp/qt-creator-jp.git] / src / plugins / qmljseditor / quicktoolbarsettingspage.cpp
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
6 **
7 ** Contact: Nokia Corporation (qt-info@nokia.com)
8 **
9 ** No Commercial Usage
10 **
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
15 **
16 ** GNU Lesser General Public License Usage
17 **
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file.  Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Nokia gives you certain additional
26 ** rights.  These rights are described in the Nokia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
31 **
32 **************************************************************************/
33
34 #include <qmldesigner/qmldesignerconstants.h>
35 #include "quicktoolbarsettingspage.h"
36
37 #include <coreplugin/icore.h>
38
39 #include <QtCore/QSettings>
40 #include <QtCore/QTextStream>
41 #include <QtGui/QCheckBox>
42
43
44 using namespace QmlJSEditor;
45 using namespace QmlJSEditor::Internal;
46
47 QuickToolBarSettings::QuickToolBarSettings()
48     : enableContextPane(false),
49     pinContextPane(false)
50 {}
51
52 void QuickToolBarSettings::set()
53 {
54     if (get() != *this) {
55         if (QSettings *settings = Core::ICore::instance()->settings())
56             toSettings(settings);
57     }
58 }
59
60 void QuickToolBarSettings::fromSettings(QSettings *settings)
61 {
62     settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_SETTINGS_GROUP));
63     settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_DESIGNER_SETTINGS_GROUP));
64     enableContextPane = settings->value(
65             QLatin1String(QmlDesigner::Constants::QML_CONTEXTPANE_KEY), QVariant(false)).toBool();
66     pinContextPane = settings->value(
67                 QLatin1String(QmlDesigner::Constants::QML_CONTEXTPANEPIN_KEY), QVariant(false)).toBool();
68     settings->endGroup();
69     settings->endGroup();
70 }
71
72 void QuickToolBarSettings::toSettings(QSettings *settings) const
73 {
74     settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_SETTINGS_GROUP));
75     settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_DESIGNER_SETTINGS_GROUP));
76     settings->setValue(QLatin1String(QmlDesigner::Constants::QML_CONTEXTPANE_KEY), enableContextPane);
77     settings->setValue(QLatin1String(QmlDesigner::Constants::QML_CONTEXTPANEPIN_KEY), pinContextPane);
78     settings->endGroup();
79     settings->endGroup();
80 }
81
82 bool QuickToolBarSettings::equals(const QuickToolBarSettings &other) const
83 {
84     return  enableContextPane == other.enableContextPane
85             && pinContextPane == other.pinContextPane;
86 }
87
88
89 QuickToolBarSettingsPageWidget::QuickToolBarSettingsPageWidget(QWidget *parent) :
90     QWidget(parent)
91 {
92     m_ui.setupUi(this);
93 }
94
95 QuickToolBarSettings QuickToolBarSettingsPageWidget::settings() const
96 {
97     QuickToolBarSettings ds;
98     ds.enableContextPane = m_ui.textEditHelperCheckBox->isChecked();
99     ds.pinContextPane = m_ui.textEditHelperCheckBoxPin->isChecked();
100     return ds;
101 }
102
103 void QuickToolBarSettingsPageWidget::setSettings(const QuickToolBarSettings &s)
104 {
105     m_ui.textEditHelperCheckBox->setChecked(s.enableContextPane);
106     m_ui.textEditHelperCheckBoxPin->setChecked(s.pinContextPane);
107 }
108
109 QString QuickToolBarSettingsPageWidget::searchKeywords() const
110 {
111     QString rc;
112     QTextStream(&rc)
113             << ' ' << m_ui.textEditHelperCheckBox->text()
114             << ' ' << m_ui.textEditHelperCheckBoxPin->text();
115     rc.remove(QLatin1Char('&'));
116     return rc;
117 }
118
119 QuickToolBarSettings QuickToolBarSettings::get()
120 {
121     Core::ICore *core = Core::ICore::instance();
122     QuickToolBarSettings settings;
123     settings.fromSettings(core->settings());
124     return settings;
125 }
126
127 QuickToolBarSettingsPage::QuickToolBarSettingsPage() :
128     m_widget(0)
129 {
130 }
131
132 QString QuickToolBarSettingsPage::id() const
133 {
134     return QLatin1String("QmlToolbar");
135 }
136
137 QString QuickToolBarSettingsPage::displayName() const
138 {
139     return tr("Qt Quick ToolBar");
140 }
141
142 QString QuickToolBarSettingsPage::category() const
143 {
144     return QLatin1String("Qt Quick");
145 }
146
147 QString QuickToolBarSettingsPage::displayCategory() const
148 {
149     return QCoreApplication::translate("Qt Quick", "Qt Quick");
150 }
151
152 QIcon QuickToolBarSettingsPage::categoryIcon() const
153 {
154     return QIcon(QLatin1String(QmlDesigner::Constants::SETTINGS_CATEGORY_QML_ICON));
155 }
156
157 QWidget *QuickToolBarSettingsPage::createPage(QWidget *parent)
158 {
159     m_widget = new QuickToolBarSettingsPageWidget(parent);
160     m_widget->setSettings(QuickToolBarSettings::get());
161     if (m_searchKeywords.isEmpty())
162         m_searchKeywords = m_widget->searchKeywords();
163     return m_widget;
164 }
165
166 void QuickToolBarSettingsPage::apply()
167 {
168     if (!m_widget) // page was never shown
169         return;
170     m_widget->settings().set();
171 }
172
173 bool QuickToolBarSettingsPage::matches(const QString &s) const
174 {
175     return m_searchKeywords.contains(s, Qt::CaseInsensitive);
176 }