Krita Source Code Documentation
Loading...
Searching...
No Matches
FavoriteLocaleModel Class Reference

The FavoriteLocaleModel class This class keeps track of favorite locales from the config. More...

#include <LocaleHandler.h>

+ Inheritance diagram for FavoriteLocaleModel:

Classes

struct  Private
 

Public Types

enum  Roles { Code = Qt::UserRole + 1 , Favorite }
 

Signals

void favoritesUpdated ()
 

Public Member Functions

void addCode (const QString &code)
 
QVariant data (const QModelIndex &index, int role) const override
 
 FavoriteLocaleModel (QObject *parent=nullptr)
 
QHash< int, QByteArray > roleNames () const override
 
int rowCount (const QModelIndex &parent) const override
 
bool setData (const QModelIndex &index, const QVariant &value, int role) override
 
 ~FavoriteLocaleModel ()
 

Private Slots

void updateConfig ()
 

Private Attributes

const QScopedPointer< Privated
 

Detailed Description

The FavoriteLocaleModel class This class keeps track of favorite locales from the config.

Definition at line 104 of file LocaleHandler.h.

Member Enumeration Documentation

◆ Roles

Enumerator
Code 
Favorite 

Definition at line 110 of file LocaleHandler.h.

110 {
111 Code = Qt::UserRole + 1,
113 };

Constructor & Destructor Documentation

◆ FavoriteLocaleModel()

FavoriteLocaleModel::FavoriteLocaleModel ( QObject * parent = nullptr)

Definition at line 259 of file LocaleHandler.cpp.

260 : QAbstractListModel(parent)
261 , d(new Private ())
262{
263}
const QScopedPointer< Private > d

◆ ~FavoriteLocaleModel()

FavoriteLocaleModel::~FavoriteLocaleModel ( )

Definition at line 265 of file LocaleHandler.cpp.

266{
267
268}

Member Function Documentation

◆ addCode()

void FavoriteLocaleModel::addCode ( const QString & code)

Definition at line 323 of file LocaleHandler.cpp.

324{
325 if (!d->locales.contains(code)) {
326 beginInsertRows(QModelIndex(), d->locales.size(), d->locales.size());
327 d->locales.append(code);
328 endInsertRows();
329 }
330}

References d.

◆ data()

QVariant FavoriteLocaleModel::data ( const QModelIndex & index,
int role ) const
override

Definition at line 276 of file LocaleHandler.cpp.

277{
278 if (index.isValid()) {
279 const QString code = d->locales.at(index.row());
280 if (role == Qt::DisplayRole) {
282 return localeName(bcp47);
283 } else if (role == Code) {
284 return code;
285 } else if (role == Favorite) {
286 return d->favorites.contains(code);
287 }
288 }
289 return QVariant();
290}
const QString localeName(const KoWritingSystemUtils::Bcp47Locale &locale)
static Bcp47Locale parseBcp47Locale(const QString &locale)
The Bcp47Locale class This holds a parsed BCP47 locale. QLocale is primarily made for POSIX locale fo...

References Code, d, Favorite, localeName(), and KoWritingSystemUtils::parseBcp47Locale().

◆ favoritesUpdated

void FavoriteLocaleModel::favoritesUpdated ( )
signal

◆ roleNames()

QHash< int, QByteArray > FavoriteLocaleModel::roleNames ( ) const
override

Definition at line 332 of file LocaleHandler.cpp.

333{
334 QHash<int, QByteArray> roles = QAbstractItemModel::roleNames();
335 roles[Code] = "code";
336 roles[Favorite] = "favorite";
337 return roles;
338}

References Code, and Favorite.

◆ rowCount()

int FavoriteLocaleModel::rowCount ( const QModelIndex & parent) const
override

Definition at line 270 of file LocaleHandler.cpp.

271{
272 Q_UNUSED(parent)
273 return d->locales.size();
274}

References d.

◆ setData()

bool FavoriteLocaleModel::setData ( const QModelIndex & index,
const QVariant & value,
int role )
override

Definition at line 292 of file LocaleHandler.cpp.

293{
294 if (!index.isValid()) return false;
295
296 const QString code = d->locales.at(index.row());
297 if (role == Favorite) {
298
299 const bool fav = value.toBool();
300 bool updated = false;
301
302 if (fav) {
303 if (!d->favorites.contains(code)) {
304 d->favorites.append(code);
305 updated = true;
306 }
307 } else {
308 const int i = d->favorites.indexOf(code);
309 if (i > 0) {
310 d->favorites.removeAt(i);
311 updated = true;
312 }
313 }
314 if (updated) {
315 updateConfig();
316 emit dataChanged(index, index, {role});
317 return true;
318 }
319 }
320 return false;
321}
float value(const T *src, size_t ch)

References d, Favorite, updateConfig(), and value().

◆ updateConfig

void FavoriteLocaleModel::updateConfig ( )
privateslot

Definition at line 340 of file LocaleHandler.cpp.

341{
342 d->config.writeEntry<QStringList>(d->configKey, d->favorites);
343}

References d.

Member Data Documentation

◆ d

const QScopedPointer<Private> FavoriteLocaleModel::d
private

Definition at line 131 of file LocaleHandler.h.


The documentation for this class was generated from the following files: