[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdelibs/frameworks] kdeui/dialogs: Port away from KDialog
From: Kevin Ottens <ervin+bluesystems () kde ! org>
Date: 2012-12-13 17:14:01
Message-ID: 20121213171401.01A06A60E5 () git ! kde ! org
[Download RAW message or body]
Git commit 268ee7012273491dcbbf0596f0a1e15316c39da7 by Kevin Ottens.
Committed on 13/12/2012 at 13:20.
Pushed by ervin into branch 'frameworks'.
Port away from KDialog
M +49 -14 kdeui/dialogs/kshortcutsdialog.cpp
M +3 -2 kdeui/dialogs/kshortcutsdialog.h
http://commits.kde.org/kdelibs/268ee7012273491dcbbf0596f0a1e15316c39da7
diff --git a/kdeui/dialogs/kshortcutsdialog.cpp b/kdeui/dialogs/kshortcutsdialog.cpp
index 908deb8..994bfe1 100644
--- a/kdeui/dialogs/kshortcutsdialog.cpp
+++ b/kdeui/dialogs/kshortcutsdialog.cpp
@@ -33,6 +33,7 @@
#include "klocalizedstring.h"
#include <QApplication>
+#include <QDialogButtonBox>
#include <QDomDocument>
#include <kmessagebox.h>
@@ -56,8 +57,13 @@ class KShortcutsDialog::KShortcutsDialogPrivate
{
public:
- KShortcutsDialogPrivate(KShortcutsDialog *q): q(q), m_keyChooser(0), \
m_schemeEditor(0)
- {}
+ KShortcutsDialogPrivate(KShortcutsDialog *q)
+ : q(q),
+ m_keyChooser(0),
+ m_schemeEditor(0),
+ m_detailsButton(0)
+ {
+ }
QList<KActionCollection*> m_collections;
@@ -104,6 +110,14 @@ public:
m_keyChooser->undoChanges();
}
+ void toggleDetails()
+ {
+ const bool isVisible = m_schemeEditor->isVisible();
+
+ m_schemeEditor->setVisible(!isVisible);
+ m_detailsButton->setText(i18n("&Details") + (isVisible ? " >>" : " <<"));
+ }
+
void save()
{
m_keyChooser->save();
@@ -113,29 +127,50 @@ public:
KShortcutsDialog *q;
KShortcutsEditor* m_keyChooser; // ### move
KShortcutSchemesEditor* m_schemeEditor;
+ QPushButton *m_detailsButton;
};
KShortcutsDialog::KShortcutsDialog( KShortcutsEditor::ActionTypes types, \
KShortcutsEditor::LetterShortcuts allowLetterShortcuts, QWidget \
*parent )
-: KDialog( parent ), d(new KShortcutsDialogPrivate(this))
+ : QDialog(parent), d(new KShortcutsDialogPrivate(this))
{
- setCaption(i18n("Configure Shortcuts"));
- setButtons(Details|Reset|Ok|Cancel|KDialog::User1);
- setButtonText(KDialog::User1, i18n("Print"));
- setButtonIcon(KDialog::User1, KDE::icon("document-print"));
+ setWindowTitle(i18n("Configure Shortcuts"));
setModal(true);
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ setLayout(layout);
+
d->m_keyChooser = new KShortcutsEditor( this, types, allowLetterShortcuts );
- setMainWidget( d->m_keyChooser );
- setButtonText(Reset,i18n("Reset to Defaults"));
+ layout->addWidget(d->m_keyChooser);
d->m_schemeEditor = new KShortcutSchemesEditor(this);
connect( d->m_schemeEditor, SIGNAL(shortcutsSchemeChanged(QString)),
this, SLOT(changeShortcutScheme(QString)) );
- setDetailsWidget(d->m_schemeEditor);
-
- connect( this, SIGNAL(resetClicked()), d->m_keyChooser, SLOT(allDefault()) );
- connect( this, SIGNAL(user1Clicked()), d->m_keyChooser, SLOT(printShortcuts()) \
);
- connect(this, SIGNAL(cancelClicked()), SLOT(undoChanges()));
+ d->m_schemeEditor->hide();
+ layout->addWidget(d->m_schemeEditor);
+
+ d->m_detailsButton = new QPushButton;
+ d->m_detailsButton->setText(i18n("&Details") + " >>");
+
+ QPushButton *printButton = new QPushButton;
+ printButton->setText(i18n("Print"));
+ printButton->setIcon(KDE::icon("document-print"));
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
+ buttonBox->addButton(d->m_detailsButton, QDialogButtonBox::ActionRole);
+ buttonBox->addButton(printButton, QDialogButtonBox::ActionRole);
+ buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel | \
QDialogButtonBox::Reset); + \
buttonBox->button(QDialogButtonBox::Reset)->setText(i18n("Reset to Defaults")); + \
layout->addWidget(buttonBox); +
+ connect(buttonBox->button(QDialogButtonBox::Reset), SIGNAL(clicked()),
+ d->m_keyChooser, SLOT(allDefault()));
+ connect(d->m_detailsButton, SIGNAL(clicked()), this, SLOT(toggleDetails()));
+ connect(printButton, SIGNAL(clicked()), d->m_keyChooser, SLOT(printShortcuts()) \
); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(undoChanges()));
+
+ connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
KConfigGroup group( KSharedConfig::openConfig(), "KShortcutsDialog Settings" );
resize( group.readEntry( "Dialog Size", sizeHint() ) );
diff --git a/kdeui/dialogs/kshortcutsdialog.h b/kdeui/dialogs/kshortcutsdialog.h
index 53a4cfe..54082f9 100644
--- a/kdeui/dialogs/kshortcutsdialog.h
+++ b/kdeui/dialogs/kshortcutsdialog.h
@@ -26,7 +26,7 @@
#ifndef KSHORTCUTSDIALOG_H
#define KSHORTCUTSDIALOG_H
-#include <kdialog.h>
+#include <QDialog>
#include "kshortcutseditor.h"
@@ -66,7 +66,7 @@
* @author Hamish Rodda <rodda@kde.org> (KDE 4 porting)
* @author Michael Jansen <kde@michael-jansen.biz>
*/
-class KDEUI_EXPORT KShortcutsDialog : public KDialog
+class KDEUI_EXPORT KShortcutsDialog : public QDialog
{
Q_OBJECT
@@ -134,6 +134,7 @@ private:
Q_PRIVATE_SLOT(d, void changeShortcutScheme(const QString &))
Q_PRIVATE_SLOT(d, void save())
Q_PRIVATE_SLOT(d, void undoChanges())
+ Q_PRIVATE_SLOT(d, void toggleDetails())
class KShortcutsDialogPrivate;
friend class KShortcutsDialogPrivate;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic