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 263 of file LocaleHandler.cpp.

264 : QAbstractListModel(parent)
265 , d(new Private ())
266{
267}
const QScopedPointer< Private > d

◆ ~FavoriteLocaleModel()

FavoriteLocaleModel::~FavoriteLocaleModel ( )

Definition at line 269 of file LocaleHandler.cpp.

270{
271
272}

Member Function Documentation

◆ addCode()

void FavoriteLocaleModel::addCode ( const QString & code)

Definition at line 327 of file LocaleHandler.cpp.

328{
329 if (!d->locales.contains(code)) {
330 beginInsertRows(QModelIndex(), d->locales.size(), d->locales.size());
331 d->locales.append(code);
332 endInsertRows();
333 }
334}

References d.

◆ data()

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

Definition at line 280 of file LocaleHandler.cpp.

281{
282 if (index.isValid()) {
283 const QString code = d->locales.at(index.row());
284 if (role == Qt::DisplayRole) {
286 return localeName(bcp47);
287 } else if (role == Code) {
288 return code;
289 } else if (role == Favorite) {
290 return d->favorites.contains(code);
291 }
292 }
293 return QVariant();
294}
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 336 of file LocaleHandler.cpp.

337{
338 QHash<int, QByteArray> roles = QAbstractItemModel::roleNames();
339 roles[Code] = "code";
340 roles[Favorite] = "favorite";
341 return roles;
342}

References Code, and Favorite.

◆ rowCount()

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

Definition at line 274 of file LocaleHandler.cpp.

275{
276 Q_UNUSED(parent)
277 return d->locales.size();
278}

References d.

◆ setData()

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

Definition at line 296 of file LocaleHandler.cpp.

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

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

◆ updateConfig

void FavoriteLocaleModel::updateConfig ( )
privateslot

Definition at line 344 of file LocaleHandler.cpp.

345{
346 d->config.writeEntry<QStringList>(d->configKey, d->favorites);
347}

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: