Krita Source Code Documentation
Loading...
Searching...
No Matches
KisShortcutsDialog.cpp
Go to the documentation of this file.
1/* This file is part of the KDE libraries
2 SPDX-FileCopyrightText: 1998 Mark Donohoe <donohoe@kde.org>
3 SPDX-FileCopyrightText: 1997 Nicolas Hadacek <hadacek@kde.org>
4 SPDX-FileCopyrightText: 1998 Mark Donohoe <donohoe@kde.org>
5 SPDX-FileCopyrightText: 1998 Matthias Ettrich <ettrich@kde.org>
6 SPDX-FileCopyrightText: 1999 Espen Sand <espen@kde.org>
7 SPDX-FileCopyrightText: 2001 Ellis Whitehead <ellis@kde.org>
8 SPDX-FileCopyrightText: 2006 Hamish Rodda <rodda@kde.org>
9 SPDX-FileCopyrightText: 2007 Roberto Raggi <roberto@kdevelop.org>
10 SPDX-FileCopyrightText: 2007 Andreas Hartmetz <ahartmetz@gmail.com>
11 SPDX-FileCopyrightText: 2008 Michael Jansen <kde@michael-jansen.biz>
12 SPDX-FileCopyrightText: 2008 Alexander Dymo <adymo@kdevelop.org>
13 SPDX-FileCopyrightText: 2009 Chani Armitage <chani@kde.org>
14
15 SPDX-License-Identifier: LGPL-2.0-or-later
16*/
17
18#include "KisShortcutsDialog.h"
22
23#include <QApplication>
24#include <QDialogButtonBox>
25#include <QDomDocument>
26#include <QVBoxLayout>
27#include <QDebug>
28#include <QPushButton>
29
30#include <klocalizedstring.h>
31#include <kconfiggroup.h>
32#include <kmessagebox.h>
33#include <ksharedconfig.h>
34#include "kxmlguiclient.h"
35#include "kxmlguifactory.h"
36#include "kactioncollection.h"
37
38KisShortcutsDialog::KisShortcutsDialog(KisShortcutsEditor::ActionTypes types,
39 KisShortcutsEditor::LetterShortcuts allowLetterShortcuts,
40 QWidget *parent)
41 : QWidget(parent)
42 , d(new KisShortcutsDialogPrivate(this))
43{
44
45 d->m_shortcutsEditor = new KisShortcutsEditor(this, types, allowLetterShortcuts);
46
47 /* Construct & Connect UI */
48 QVBoxLayout *mainLayout = new QVBoxLayout(this);
49 mainLayout->setContentsMargins(0, 0, 0, 0);
50 mainLayout->addWidget(d->m_shortcutsEditor);
51 QHBoxLayout *bottomLayout = new QHBoxLayout;
53 connect(d->m_schemeEditor, SIGNAL(shortcutsSchemeChanged(QString)),
54 this, SLOT(changeShortcutScheme(QString)));
55 bottomLayout->addLayout(d->m_schemeEditor);
56 QPushButton *printButton = new QPushButton;
57 KGuiItem::assign(printButton, KStandardGuiItem::print());
58
59 QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
60 buttonBox->addButton(printButton, QDialogButtonBox::ActionRole);
61 bottomLayout->addWidget(buttonBox);
62 mainLayout->addLayout(bottomLayout);
63 connect(printButton, SIGNAL(clicked()), d->m_shortcutsEditor, SLOT(printShortcuts()));
64
65 KConfigGroup group(KSharedConfig::openConfig(), "KisShortcutsDialog Settings");
66 resize(group.readEntry("Dialog Size", sizeHint()));
67}
68
70{
71 KConfigGroup group(KSharedConfig::openConfig(), "KisShortcutsDialog Settings");
72 group.writeEntry("Dialog Size", size());
73 delete d;
74}
75
76void KisShortcutsDialog::addCollection(KisKActionCollection *collection, const QString &title)
77{
78 d->m_shortcutsEditor->addCollection(collection, title);
79 d->m_collections.insert(title, collection);
80}
81
82
84{
85 d->save();
86}
87
92
94{
95 return QSize(600, 480);
96}
97
102
104{
105 d->undo();
106}
107
109{
110 auto config = KSharedConfig::openConfig(path);
111 d->m_shortcutsEditor->importConfiguration(config.data(), true);
112}
113
114void KisShortcutsDialog::exportConfiguration(const QString &path) const
115{
116 auto config = KSharedConfig::openConfig(path);
117 d->m_shortcutsEditor->exportConfiguration(config.data());
118}
119
120void KisShortcutsDialog::saveCustomShortcuts(const QString &path) const
121{
122 auto cg = KSharedConfig::openConfig(path)->group(QStringLiteral("Shortcuts"));
125}
126
128{
129 auto config = KSharedConfig::openConfig(path);
130 d->m_shortcutsEditor->importConfiguration(config.data(), false);
131}
132
133#include "moc_KisShortcutsDialog.cpp"
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
A container for a set of QAction objects.
QHash< QString, KisKActionCollection * > m_collections
void exportConfiguration(const QString &path) const
KisShortcutsDialog(KisShortcutsEditor::ActionTypes types=defaultActionTypes, KisShortcutsEditor::LetterShortcuts allowLetterShortcuts=KisShortcutsEditor::LetterShortcutsAllowed, QWidget *parent=0)
void importConfiguration(const QString &path)
class KisShortcutsDialogPrivate *const d
void loadCustomShortcuts(const QString &path)
void saveCustomShortcuts(const QString &path) const
QList< KisKActionCollection * > actionCollections() const
QSize sizeHint() const override
void addCollection(KisKActionCollection *, const QString &title=QString())
Widget for configuration of KAccel and KGlobalAccel.
void saveShortcuts(KConfigGroup *config=0) const
void addCollection(KisKActionCollection *, const QString &title=QString())
void importConfiguration(KConfigBase *config, bool isScheme)
void exportConfiguration(KConfigBase *config) const