13#include <QDomDocument>
14#include <QStandardPaths>
15#include <QInputDialog>
20#include <kconfiggroup.h>
21#include <kmessagebox.h>
22#include <ksharedconfig.h>
36 KConfigGroup group(KSharedConfig::openConfig(),
"Shortcut Schemes");
39 schemes << QStringLiteral(
"Default");
42 schemes << schemeFileLocations.keys();
44 QString
currentScheme = group.readEntry(
"Current Scheme",
"Default");
46 if (!QFileInfo(schemeFileName).exists()) {
49 setContentsMargins(0, 0, 0, 0);
51 QLabel *schemesLabel =
new QLabel(i18n(
"Shortcut Schemes:"),
m_dialog);
52 addWidget(schemesLabel);
61 m_newScheme =
new QPushButton(i18nc(
"New shortcut scheme",
"New..."));
67 QPushButton *moreActions =
new QPushButton(i18n(
"Save/Load"));
68 addWidget(moreActions);
70 QMenu *moreActionsMenu =
new QMenu(
m_dialog);
74 moreActionsMenu->addAction(i18n(
"Save Custom Shortcuts"),
76 moreActionsMenu->addAction(i18n(
"Load Custom Shortcuts"),
78 moreActionsMenu->addAction(i18n(
"Export Scheme..."),
80 moreActionsMenu->addAction(i18n(
"Import Scheme..."),
82 moreActions->setMenu(moreActionsMenu);
96 const QString newName = QInputDialog::getText(
m_dialog, i18n(
"Name for New Scheme"),
97 i18n(
"Name for new scheme:"), QLineEdit::Normal, i18n(
"New Scheme"), &ok);
103 KMessageBox::error(
m_dialog, i18n(
"A scheme with this name already exists."));
109 QFile schemeFile(newSchemeFileName);
110 if (!schemeFile.open(QFile::WriteOnly | QFile::Truncate)) {
111 qDebug() <<
"Could not open scheme file.";
126 if (KMessageBox::questionTwoActions(
m_dialog,
127 i18n(
"Do you really want to delete the scheme %1?\n\
128 Note that this will not remove any system wide shortcut schemes.",
131 KStandardGuiItem::del(),
132 KStandardGuiItem::cancel())
133 == KMessageBox::SecondaryAction) {
152 KConfigGroup group = KSharedConfig::openConfig()->group(
"File Dialogs");
156 dialog.setCaption(i18n(
"Export Shortcuts"));
157 dialog.setDefaultDir(proposedPath);
158 dialog.setMimeTypeFilters(
QStringList() <<
"application/x-krita-shortcuts",
"application/x-krita-shortcuts");
159 QString path = dialog.filename();
161 if (!path.isEmpty()) {
168 KConfigGroup group = KSharedConfig::openConfig()->group(
"File Dialogs");
169 QString proposedPath = group.readEntry(
"SaveCustomShortcuts", QStandardPaths::writableLocation(QStandardPaths::HomeLocation));
172 dialog.setCaption(i18n(
"Save Shortcuts"));
173 dialog.setDefaultDir(proposedPath);
174 dialog.setMimeTypeFilters(
QStringList() <<
"application/x-krita-shortcuts",
"application/x-krita-shortcuts");
175 QString path = dialog.filename();
177 if (!path.isEmpty()) {
186 KConfigGroup group = KSharedConfig::openConfig()->group(
"File Dialogs");
187 QString proposedPath = group.readEntry(
"ImportShortcuts", QStandardPaths::writableLocation(QStandardPaths::HomeLocation));
190 dialog.setCaption(i18n(
"Import Shortcuts"));
191 dialog.setDefaultDir(proposedPath);
192 dialog.setMimeTypeFilters(
QStringList() <<
"application/x-krita-shortcuts",
"application/x-krita-shortcuts");
193 QString path = dialog.filename();
195 if (path.isEmpty()) {
207 KConfigGroup group = KSharedConfig::openConfig()->group(
"File Dialogs");
208 QString proposedPath = group.readEntry(
"ImportShortcuts", QStandardPaths::writableLocation(QStandardPaths::HomeLocation));
211 dialog.setCaption(i18n(
"Import Shortcuts"));
212 dialog.setDefaultDir(proposedPath);
213 dialog.setMimeTypeFilters(
QStringList() <<
"application/x-krita-shortcuts",
"application/x-krita-shortcuts");
214 QString path = dialog.filename();
216 if (path.isEmpty()) {
225void KisKShortcutSchemesEditor::saveAsDefaultsForScheme()
228 KisKShortcutSchemesHelper::exportActionCollection(collection,
currentScheme());
QList< QString > QStringList
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
A container for a set of QAction objects.
QPushButton * m_deleteScheme
void shortcutsSchemeChanged(const QString &)
void exportShortcutsScheme()
KisShortcutsDialog * m_dialog
KisKShortcutSchemesEditor(KisShortcutsDialog *parent)
QPushButton * m_newScheme
void saveCustomShortcuts()
void updateDeleteButton()
QComboBox * m_schemesList
QHash< QString, QString > m_schemeFileLocations
void importShortcutsScheme()
void loadCustomShortcuts()
static QHash< QString, QString > schemeFileLocations()
static QString shortcutSchemeFileName(const QString &schemeName)
void exportConfiguration(const QString &path) const
void importConfiguration(const QString &path)
void loadCustomShortcuts(const QString &path)
void saveCustomShortcuts(const QString &path) const
QList< KisKActionCollection * > actionCollections() const
static QString saveLocation(const QString &type, const QString &suffix=QString(), bool create=true)