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

#include <KisInputProfileMigrator.h>

+ Inheritance diagram for KisInputProfileMigrator5To6:

Public Member Functions

 KisInputProfileMigrator5To6 (KisInputProfileManager *manager)
 
QMap< ProfileEntry, QList< KisShortcutConfiguration > > migrate (const QMap< QString, ProfileEntry > profiles) override
 
 ~KisInputProfileMigrator5To6 () override
 
- Public Member Functions inherited from KisInputProfileMigrator
virtual ~KisInputProfileMigrator ()
 

Private Member Functions

QList< KisShortcutConfigurationdefaultTouchShortcuts ()
 
template<typename Func >
void filterShortcuts (QList< KisShortcutConfiguration > &shortcuts, Func func)
 
QList< KisShortcutConfigurationgetShortcutsFromProfile (QString profile) const
 

Private Attributes

QString m_defaultProfile
 
KisInputProfileManagerm_manager
 
QStringList m_profilesList
 

Detailed Description

Migrates Krita profile version 5 to 6

Definition at line 41 of file KisInputProfileMigrator.h.

Constructor & Destructor Documentation

◆ KisInputProfileMigrator5To6()

KisInputProfileMigrator5To6::KisInputProfileMigrator5To6 ( KisInputProfileManager * manager)

Definition at line 23 of file KisInputProfileMigrator.cpp.

24 : m_manager(manager)
25{
26 // FIXME(sh_zam): Should we declare this as "the default profile" somewhere?
27 const QStringList profiles =
29 .filter("kritadefault.profile");
30
31 if (!profiles.empty()) {
32 // This will be from the install location, so *has* to be the default, see KoResourcePaths for the
33 // order in which it returns locations.
34 m_defaultProfile = profiles.last();
35 } else {
36 qWarning() << "Default profile does not exist anywhere!";
37 }
38}
KisInputProfileManager * m_manager
static QStringList findAllAssets(const QString &type, const QString &filter=QString(), SearchOptions options=NoSearchOptions)

References KoResourcePaths::findAllAssets(), m_defaultProfile, and KoResourcePaths::Recursive.

◆ ~KisInputProfileMigrator5To6()

KisInputProfileMigrator5To6::~KisInputProfileMigrator5To6 ( )
override

Definition at line 40 of file KisInputProfileMigrator.cpp.

41{
42}

Member Function Documentation

◆ defaultTouchShortcuts()

QList< KisShortcutConfiguration > KisInputProfileMigrator5To6::defaultTouchShortcuts ( )
private

Definition at line 44 of file KisInputProfileMigrator.cpp.

45{
47 filterShortcuts(shortcuts, [](KisShortcutConfiguration shortcut) {
49 });
50
51 return shortcuts;
52}
void filterShortcuts(QList< KisShortcutConfiguration > &shortcuts, Func func)
QList< KisShortcutConfiguration > getShortcutsFromProfile(QString profile) const
A class encapsulating all settings for a single shortcut.

References filterShortcuts(), KisShortcutConfiguration::GestureType, getShortcutsFromProfile(), m_defaultProfile, and KisShortcutConfiguration::type().

◆ filterShortcuts()

template<typename Func >
void KisInputProfileMigrator5To6::filterShortcuts ( QList< KisShortcutConfiguration > & shortcuts,
Func func )
private

Definition at line 55 of file KisInputProfileMigrator.cpp.

56{
57 auto it = shortcuts.begin();
58 while (it != shortcuts.end()) {
59 KisShortcutConfiguration shortcut = *it;
60 if (pred(shortcut)) {
61 ++it;
62 } else {
63 it = shortcuts.erase(it);
64 }
65 }
66}

◆ getShortcutsFromProfile()

QList< KisShortcutConfiguration > KisInputProfileMigrator5To6::getShortcutsFromProfile ( QString profile) const
private

Definition at line 68 of file KisInputProfileMigrator.cpp.

69{
71
72 KConfig config(profile, KConfig::SimpleConfig);
73
75 for (const auto action : actions) {
76 if (!config.hasGroup(action->id())) {
77 continue;
78 }
79
80 KConfigGroup group = config.group(action->id());
81 for (const auto &groupEntry : group.entryMap()) {
83
84 shortcut.setAction(action);
85 if (shortcut.unserialize(groupEntry)) {
86 shortcuts.append(shortcut);
87 }
88 }
89 }
90 return shortcuts;
91}
QList< KisAbstractInputAction * > actions
bool unserialize(const QString &serialized)
void setAction(KisAbstractInputAction *newAction)

References KisInputProfileManager::actions, m_manager, KisShortcutConfiguration::setAction(), and KisShortcutConfiguration::unserialize().

◆ migrate()

QMap< ProfileEntry, QList< KisShortcutConfiguration > > KisInputProfileMigrator5To6::migrate ( const QMap< QString, ProfileEntry > profiles)
overridevirtual

Implements KisInputProfileMigrator.

Definition at line 94 of file KisInputProfileMigrator.cpp.

95{
96 QMap<ProfileEntry, QList<KisShortcutConfiguration>> parsedProfiles;
97 for (const auto &profile : profiles) {
98 QList<KisShortcutConfiguration> shortcuts = getShortcutsFromProfile(profile.fullpath);
99
100 // we ignore the touch shortcuts, because they're from an older version
101 filterShortcuts(shortcuts, [](KisShortcutConfiguration shortcut) {
102 return shortcut.type() != KisShortcutConfiguration::GestureType;
103 });
104
105 // now we add the default new shortcuts -- this should complete the migration.
106 shortcuts.append(defaultTouchShortcuts());
107
108 parsedProfiles[profile] = shortcuts;
109 }
110
111 return parsedProfiles;
112}
QList< KisShortcutConfiguration > defaultTouchShortcuts()

References defaultTouchShortcuts(), filterShortcuts(), KisShortcutConfiguration::GestureType, getShortcutsFromProfile(), and KisShortcutConfiguration::type().

Member Data Documentation

◆ m_defaultProfile

QString KisInputProfileMigrator5To6::m_defaultProfile
private

Definition at line 62 of file KisInputProfileMigrator.h.

◆ m_manager

KisInputProfileManager* KisInputProfileMigrator5To6::m_manager
private

Definition at line 60 of file KisInputProfileMigrator.h.

◆ m_profilesList

QStringList KisInputProfileMigrator5To6::m_profilesList
private

Definition at line 61 of file KisInputProfileMigrator.h.


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