6 #include "settingsimpl_p.h"
21 explicit DictionaryModel(
QObject *parent =
nullptr)
27 ~DictionaryModel()
override
40 void setDefaultLanguage(
const QString &language)
42 m_defaultDictionary = language;
53 const int row = idx.
row();
54 const auto language = m_availableDictionaries.keys().
at(row);
55 const auto inPreferredDictionaries = m_preferredDictionaries.contains(m_availableDictionaries.keys().at(row));
57 if (inPreferredDictionaries) {
58 m_preferredDictionaries.remove(language);
60 m_preferredDictionaries[language] = m_availableDictionaries.values().at(row);
62 qobject_cast<Settings *>(
parent())->setPreferredLanguages(m_preferredDictionaries.values());
72 const int row = index.
row();
76 return m_availableDictionaries.keys().at(row);
77 case Settings::LanguageCodeRole:
78 return m_availableDictionaries.values().at(row);
80 return m_preferredDictionaries.contains(m_availableDictionaries.keys().at(row));
81 case Settings::DefaultRole:
82 return data(index, Settings::LanguageCodeRole) == m_defaultDictionary;
87 int rowCount(
const QModelIndex &parent)
const override
90 return m_availableDictionaries.count();
98 {Settings::PreferredRole, QByteArrayLiteral(
"isPreferred")},
99 {Settings::LanguageCodeRole, QByteArrayLiteral(
"languageCode")},
100 {Settings::DefaultRole, QByteArrayLiteral(
"isDefault")},
110 class SettingsPrivate
113 Loader *loader =
nullptr;
114 DictionaryModel *dictionaryModel =
nullptr;
117 Settings::Settings(
QObject *parent)
119 , d(new SettingsPrivate)
121 d->loader = Loader::openLoader();
124 Settings::~Settings()
129 void Settings::setDefaultLanguage(
const QString &lang)
131 if (defaultLanguage() == lang) {
134 d->loader->settings()->setDefaultLanguage(lang);
135 Q_EMIT defaultLanguageChanged();
136 Q_EMIT modifiedChanged();
138 if (d->dictionaryModel) {
139 d->dictionaryModel->setDefaultLanguage(lang);
143 QString Settings::defaultLanguage()
const
145 return d->loader->settings()->defaultLanguage();
148 void Settings::setPreferredLanguages(
const QStringList &lang)
150 if (!d->loader->settings()->setPreferredLanguages(lang)) {
153 Q_EMIT modifiedChanged();
154 Q_EMIT preferredLanguagesChanged();
159 return d->loader->settings()->preferredLanguages();
162 void Settings::setDefaultClient(
const QString &client)
164 if (!d->loader->settings()->setDefaultClient(client)) {
167 Q_EMIT defaultClientChanged();
168 Q_EMIT modifiedChanged();
171 QString Settings::defaultClient()
const
173 return d->loader->settings()->defaultClient();
176 void Settings::setSkipUppercase(
bool skip)
178 if (!d->loader->settings()->setCheckUppercase(!skip)) {
181 Q_EMIT skipUppercaseChanged();
182 Q_EMIT modifiedChanged();
185 bool Settings::skipUppercase()
const
187 return !d->loader->settings()->checkUppercase();
190 void Settings::setAutodetectLanguage(
bool detect)
192 if (!d->loader->settings()->setAutodetectLanguage(detect)) {
195 Q_EMIT autodetectLanguageChanged();
196 Q_EMIT modifiedChanged();
199 bool Settings::autodetectLanguage()
const
201 return d->loader->settings()->autodetectLanguage();
204 void Settings::setSkipRunTogether(
bool skip)
206 if (skipRunTogether() == skip) {
209 d->loader->settings()->setSkipRunTogether(skip);
210 Q_EMIT skipRunTogetherChanged();
211 Q_EMIT modifiedChanged();
214 bool Settings::skipRunTogether()
const
216 return d->loader->settings()->skipRunTogether();
219 void Settings::setCheckerEnabledByDefault(
bool check)
221 if (checkerEnabledByDefault() == check) {
224 d->loader->settings()->setCheckerEnabledByDefault(check);
225 Q_EMIT checkerEnabledByDefaultChanged();
226 Q_EMIT modifiedChanged();
229 bool Settings::checkerEnabledByDefault()
const
231 return d->loader->settings()->checkerEnabledByDefault();
234 void Settings::setBackgroundCheckerEnabled(
bool enable)
236 if (backgroundCheckerEnabled() == enable) {
239 d->loader->settings()->setBackgroundCheckerEnabled(enable);
240 Q_EMIT backgroundCheckerEnabledChanged();
241 Q_EMIT modifiedChanged();
244 bool Settings::backgroundCheckerEnabled()
const
246 return d->loader->settings()->backgroundCheckerEnabled();
249 void Settings::setCurrentIgnoreList(
const QStringList &ignores)
251 if (currentIgnoreList() == ignores) {
254 d->loader->settings()->setCurrentIgnoreList(ignores);
255 Q_EMIT currentIgnoreListChanged();
256 Q_EMIT modifiedChanged();
261 return d->loader->settings()->currentIgnoreList();
266 return d->loader->clients();
269 void Settings::save()
271 d->loader->settings()->save();
272 Q_EMIT modifiedChanged();
275 bool Settings::modified()
const
277 return d->loader->settings()->modified();
285 l.
append(QStringLiteral(
"KMail"));
286 l.
append(QStringLiteral(
"KOrganizer"));
287 l.
append(QStringLiteral(
"KAddressBook"));
288 l.
append(QStringLiteral(
"KHTML"));
289 l.
append(QStringLiteral(
"KIO"));
290 l.
append(QStringLiteral(
"KJS"));
291 l.
append(QStringLiteral(
"Konqueror"));
292 l.
append(QStringLiteral(
"Sonnet"));
293 l.
append(QStringLiteral(
"Kontact"));
294 l.
append(QStringLiteral(
"Qt"));
295 l.
append(QStringLiteral(
"Okular"));
296 l.
append(QStringLiteral(
"KMix"));
297 l.
append(QStringLiteral(
"Amarok"));
298 l.
append(QStringLiteral(
"KDevelop"));
299 l.
append(QStringLiteral(
"Nepomuk"));
303 bool Settings::defaultSkipUppercase()
308 bool Settings::defaultAutodetectLanguage()
313 bool Settings::defaultBackgroundCheckerEnabled()
318 bool Settings::defaultCheckerEnabledByDefault()
323 bool Settings::defauktSkipRunTogether()
328 QString Settings::defaultDefaultLanguage()
341 if (d->dictionaryModel) {
342 return d->dictionaryModel;
345 d->dictionaryModel =
new DictionaryModel(
this);
346 d->dictionaryModel->setDefaultLanguage(defaultLanguage());
347 return d->dictionaryModel;
351 #include "moc_settings.cpp"
352 #include "settings.moc"