[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