34 #include <hbinputsettingproxy.h> |
35 #include <hbinputsettingproxy.h> |
35 #include <hbinpututils.h> |
36 #include <hbinpututils.h> |
36 #include <hbinputpredictionfactory.h> |
37 #include <hbinputpredictionfactory.h> |
37 #include <hbinputregioncollector_p.h> |
38 #include <hbinputregioncollector_p.h> |
38 |
39 |
39 #include "hbinputsettinglist.h" |
|
40 #include "hbdialog_p.h" |
40 #include "hbdialog_p.h" |
41 |
41 |
42 const QString settingsIcon("qtg_mono_settings"); |
42 const QString settingsIcon("qtg_mono_settings"); |
43 const QString inputMethodIcon("qtg_mono_virtual_input"); |
43 const QString inputMethodIcon("qtg_mono_virtual_input"); |
44 |
44 |
59 HbInputLanguage mSecondaryLanguage; |
59 HbInputLanguage mSecondaryLanguage; |
60 QList<QString> mPredictionValues; |
60 QList<QString> mPredictionValues; |
61 }; |
61 }; |
62 |
62 |
63 HbInputSettingListPrivate::HbInputSettingListPrivate() |
63 HbInputSettingListPrivate::HbInputSettingListPrivate() |
64 : mLanguageButton(0), mPredictionButton(0), mOptionList(0) |
64 : mLanguageButton(0), mPredictionButton(0), mOptionList(0) |
65 { |
65 { |
66 } |
66 } |
67 |
67 |
68 qreal HbInputSettingListPrivate::languageNameWidth() |
68 qreal HbInputSettingListPrivate::languageNameWidth() |
69 { |
69 { |
70 qreal nameWidth(0); |
70 qreal nameWidth(0); |
71 QList<HbInputLanguage> languages; |
71 QList<HbInputLanguage> languages; |
72 HbInputUtils::listSupportedInputLanguages(languages); |
72 HbInputUtils::listSupportedInputLanguages(languages); |
73 QFontMetrics fontMetrics(mLanguageButton->font()); |
73 QFontMetrics fontMetrics(mLanguageButton->font()); |
74 |
74 |
75 foreach (HbInputLanguage language, languages) { |
75 foreach(HbInputLanguage language, languages) { |
76 qreal width = fontMetrics.width(language.localisedName()); |
76 qreal width = fontMetrics.width(language.localisedName()); |
77 if (width > nameWidth) { |
77 if (width > nameWidth) { |
78 nameWidth = width; |
78 nameWidth = width; |
79 } |
79 } |
80 } |
80 } |
85 /// @endcond |
85 /// @endcond |
86 |
86 |
87 /*! |
87 /*! |
88 Constructs input setting list |
88 Constructs input setting list |
89 */ |
89 */ |
90 HbInputSettingList::HbInputSettingList(QGraphicsWidget* parent) |
90 HbInputSettingList::HbInputSettingList(QGraphicsWidget *parent) |
91 : HbDialog(*new HbInputSettingListPrivate(), parent) |
91 : HbDialog(*new HbInputSettingListPrivate(), parent) |
92 { |
92 { |
93 Q_D(HbInputSettingList); |
93 Q_D(HbInputSettingList); |
94 HbInputRegionCollector::instance()->attach(this); |
94 HbInputRegionCollector::instance()->attach(this); |
95 |
95 |
96 QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical); |
96 QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical); |
97 QGraphicsGridLayout *gridLayout = new QGraphicsGridLayout(); |
97 QGraphicsGridLayout *gridLayout = new QGraphicsGridLayout(); |
98 |
98 |
99 HbLabel *languageLabel = new HbLabel(tr("Language"), this); |
99 HbLabel *languageLabel = new HbLabel(tr("Language"), this); |
100 languageLabel->setFontSpec(HbFontSpec(HbFontSpec::Primary)); |
100 languageLabel->setFontSpec(HbFontSpec(HbFontSpec::Primary)); |
101 d->mLanguageButton = new HbPushButton(QString(), this); |
101 d->mLanguageButton = new HbPushButton(QString(), this); |
102 d->mLanguageButton->setFontSpec(HbFontSpec(HbFontSpec::Primary)); |
102 d->mLanguageButton->setFontSpec(HbFontSpec(HbFontSpec::Primary)); |
103 d->mLanguageButton->setObjectName("Language setting button"); |
103 d->mLanguageButton->setObjectName("Language setting button"); |
128 gridLayout->setRowFixedHeight(0, buttonHeight); |
128 gridLayout->setRowFixedHeight(0, buttonHeight); |
129 gridLayout->setRowFixedHeight(1, buttonHeight); |
129 gridLayout->setRowFixedHeight(1, buttonHeight); |
130 |
130 |
131 mainLayout->addItem(gridLayout); |
131 mainLayout->addItem(gridLayout); |
132 mainLayout->addItem(d->mOptionList); |
132 mainLayout->addItem(d->mOptionList); |
133 setLayout(mainLayout); |
133 QGraphicsWidget *content = new QGraphicsWidget(this); |
|
134 content->setLayout(mainLayout); |
|
135 setContentWidget(content); |
134 |
136 |
135 d->mPredictionValues.append(tr("Off")); |
137 d->mPredictionValues.append(tr("Off")); |
136 d->mPredictionValues.append(tr("On")); |
138 d->mPredictionValues.append(tr("On")); |
137 |
139 |
138 // set default values for popup |
140 // set default values for popup |
139 setTimeout(HbDialog::NoTimeout); |
141 setTimeout(HbDialog::NoTimeout); |
140 setBackgroundFaded(false); |
142 setBackgroundFaded(false); |
141 setDismissPolicy(TapOutside); |
143 setDismissPolicy(TapOutside); |
142 |
144 |
143 #if QT_VERSION >= 0x040600 |
|
144 // Make sure the custom button list never steals focus. |
145 // Make sure the custom button list never steals focus. |
145 setFlag(QGraphicsItem::ItemIsPanel, true); |
146 setFlag(QGraphicsItem::ItemIsPanel, true); |
146 setActive(false); |
147 setActive(false); |
147 #endif |
|
148 |
148 |
149 connect(d->mLanguageButton, SIGNAL(clicked(bool)), this, SLOT(languageButtonClicked())); |
149 connect(d->mLanguageButton, SIGNAL(clicked(bool)), this, SLOT(languageButtonClicked())); |
150 connect(d->mPredictionButton, SIGNAL(clicked(bool)), this, SLOT(predictionButtonClicked())); |
150 connect(d->mPredictionButton, SIGNAL(clicked(bool)), this, SLOT(predictionButtonClicked())); |
151 connect(d->mOptionList, SIGNAL(activated(HbListWidgetItem*)), this, SLOT(listItemActivated(HbListWidgetItem*))); |
151 connect(d->mOptionList, SIGNAL(activated(HbListWidgetItem *)), this, SLOT(listItemActivated(HbListWidgetItem *))); |
152 connect(d->mOptionList, SIGNAL(longPressed(HbListWidgetItem*, const QPointF&)), this, SLOT(listItemActivated(HbListWidgetItem*))); |
152 connect(d->mOptionList, SIGNAL(longPressed(HbListWidgetItem *, const QPointF &)), this, SLOT(listItemActivated(HbListWidgetItem *))); |
153 |
153 |
154 HbInputSettingProxy *settings = HbInputSettingProxy::instance(); |
154 HbInputSettingProxy *settings = HbInputSettingProxy::instance(); |
155 connect(settings, SIGNAL(globalInputLanguageChanged(const HbInputLanguage &)), this, SLOT(primaryLanguageChanged(const HbInputLanguage &))); |
155 connect(settings, SIGNAL(globalInputLanguageChanged(const HbInputLanguage &)), this, SLOT(primaryLanguageChanged(const HbInputLanguage &))); |
156 connect(settings, SIGNAL(globalSecondaryInputLanguageChanged(const HbInputLanguage &)), this, SLOT(secondaryLanguageChanged(const HbInputLanguage &))); |
156 connect(settings, SIGNAL(globalSecondaryInputLanguageChanged(const HbInputLanguage &)), this, SLOT(secondaryLanguageChanged(const HbInputLanguage &))); |
157 connect(settings, SIGNAL(predictiveInputStateChanged(HbKeyboardSettingFlags, bool)), this, SLOT(predictionStatusChanged(HbKeyboardSettingFlags, bool))); |
157 connect(settings, SIGNAL(predictiveInputStateChanged(HbKeyboardSettingFlags, bool)), this, SLOT(predictionStatusChanged(HbKeyboardSettingFlags, bool))); |
216 */ |
216 */ |
217 void HbInputSettingList::languageButtonClicked() |
217 void HbInputSettingList::languageButtonClicked() |
218 { |
218 { |
219 Q_D(HbInputSettingList); |
219 Q_D(HbInputSettingList); |
220 |
220 |
221 HbInputSettingProxy *settings = HbInputSettingProxy::instance(); |
221 HbInputSettingProxy *settings = HbInputSettingProxy::instance(); |
222 HbPredictionFactory *predFactory = HbPredictionFactory::instance(); |
222 HbPredictionFactory *predFactory = HbPredictionFactory::instance(); |
223 if (d->mSecondaryLanguage == HbInputLanguage()) { |
223 if (d->mSecondaryLanguage == HbInputLanguage()) { |
224 emit inputSettingsButtonClicked(); |
224 emit inputSettingsButtonClicked(); |
225 } else { |
225 } else { |
226 HbInputLanguage language = d->mPrimaryLanguage; |
226 HbInputLanguage language = d->mPrimaryLanguage; |
227 bool oldPLangSupportsPrediction = (predFactory->predictionEngineForLanguage(language) != NULL); |
227 bool oldPLangSupportsPrediction = (predFactory->predictionEngineForLanguage(language) != NULL); |
228 d->mPrimaryLanguage = d->mSecondaryLanguage; |
228 d->mPrimaryLanguage = d->mSecondaryLanguage; |
229 d->mSecondaryLanguage = language; |
229 d->mSecondaryLanguage = language; |
230 |
230 |
231 HbInputSettingProxy::instance()->setGlobalInputLanguage(d->mPrimaryLanguage); |
231 HbInputSettingProxy::instance()->setGlobalInputLanguage(d->mPrimaryLanguage); |
232 bool langSupportsPrediction = (predFactory->predictionEngineForLanguage(d->mPrimaryLanguage) != NULL); |
232 bool langSupportsPrediction = (predFactory->predictionEngineForLanguage(d->mPrimaryLanguage) != NULL); |
233 HbInputSettingProxy::instance()->setGlobalSecondaryInputLanguage(d->mSecondaryLanguage); |
233 HbInputSettingProxy::instance()->setGlobalSecondaryInputLanguage(d->mSecondaryLanguage); |
234 |
234 |
235 if( oldPLangSupportsPrediction != langSupportsPrediction) { |
235 if (oldPLangSupportsPrediction != langSupportsPrediction) { |
236 settings->setPredictiveInputStatusForActiveKeyboard(langSupportsPrediction); |
236 settings->setPredictiveInputStatusForActiveKeyboard(langSupportsPrediction); |
237 } |
237 } |
238 } |
238 } |
239 |
239 |
240 close(); |
240 close(); |
241 } |
241 } |
242 |
242 |