[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kleopatra/crypto/gui
From: Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date: 2008-04-16 14:26:19
Message-ID: 1208355979.220238.32719.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 797606 by osterfeld:
port D/V wizard to Kleo::Crypto::Gui::Wizard
M +37 -37 decryptverifywizard.cpp
M +10 -5 decryptverifywizard.h
M +18 -9 wizard.cpp
M +11 -0 wizardpage.cpp
M +5 -0 wizardpage.h
--- trunk/KDE/kdepim/kleopatra/crypto/gui/decryptverifywizard.cpp #797605:797606
@@ -38,6 +38,7 @@
#include <crypto/gui/scrollarea.h>
#include <crypto/gui/resultdisplaywidget.h>
+#include <crypto/gui/wizardpage.h>
#include <crypto/task.h>
@@ -49,13 +50,13 @@
#include <KLocale>
#include <QScrollArea>
-#include <QWizardPage>
#include <QLayout>
#include <QLabel>
#include <QEventLoop>
#include <QPointer>
#include <QAbstractButton>
#include <QScrollBar>
+#include <QTimer>
#include <boost/bind.hpp>
@@ -78,11 +79,11 @@
}
};
- class OperationsPage : public QWizardPage {
+ class OperationsWidget : public WizardPage {
Q_OBJECT
public:
- explicit OperationsPage( QWidget * p=0 );
- ~OperationsPage();
+ explicit OperationsWidget( QWidget * p=0 );
+ ~OperationsWidget();
void setOutputDirectory( const QString & dir ) {
m_ui.outputDirectoryFNR.setFileName( dir );
@@ -98,6 +99,7 @@
return m_widgets.at( idx );
}
+ bool isComplete() const { return true; }
private:
std::vector<DecryptVerifyOperationWidget*> m_widgets;
@@ -108,16 +110,16 @@
QVBoxLayout vlay;
QHBoxLayout hlay;
- explicit UI( OperationsPage * q );
+ explicit UI( OperationsWidget * q );
} m_ui;
};
- class ResultPage : public QWizardPage {
+ class ResultWidget : public WizardPage {
Q_OBJECT
public:
- explicit ResultPage( QWidget * p=0 );
- ~ResultPage();
+ explicit ResultWidget( QWidget * p=0 );
+ ~ResultWidget();
void ensureIndexAvailable( unsigned int idx );
@@ -142,7 +144,7 @@
ScrollArea scrollArea; // ### replace with KDScrollArea when done
QVBoxLayout vlay;
- explicit UI( ResultPage * q );
+ explicit UI( ResultWidget * q );
} m_ui;
};
}
@@ -160,14 +162,13 @@
}
private:
- OperationsPage operationsPage;
- ResultPage resultPage;
- mutable bool m_prepEmitted;
+ OperationsWidget operationsPage;
+ ResultWidget resultPage;
};
DecryptVerifyWizard::DecryptVerifyWizard( QWidget * p, Qt::WindowFlags f )
- : QWizard( p, f ), d( new Private( this ) )
+ : Wizard( p, f ), d( new Private( this ) )
{
}
@@ -192,14 +193,11 @@
return d->resultPage.widget( idx );
}
-
-int DecryptVerifyWizard::nextId() const
+void DecryptVerifyWizard::onNext( int id )
{
- if ( currentPage() == &d->operationsPage && !d->m_prepEmitted ) {
- d->m_prepEmitted = true;
- emit const_cast<DecryptVerifyWizard*>( this )->operationPrepared();
- }
- return QWizard::nextId();
+ if ( id == OperationsPage )
+ QTimer::singleShot( 0, this, SIGNAL( operationPrepared() ) );
+ Wizard::onNext( id );
}
void DecryptVerifyWizard::connectTask( const boost::shared_ptr<Task> & task, unsigned int idx )
@@ -221,12 +219,15 @@
DecryptVerifyWizard::Private::Private( DecryptVerifyWizard * qq )
: q( qq ),
operationsPage( q ),
- resultPage( q ),
- m_prepEmitted( false )
+ resultPage( q )
{
- q->setOptions( q->options() | NoBackButtonOnStartPage | NoBackButtonOnLastPage );
- q->addPage( &operationsPage );
- q->addPage( &resultPage );
+ q->setPage( DecryptVerifyWizard::OperationsPage, &operationsPage );
+ q->setPage( DecryptVerifyWizard::ResultPage, &resultPage );
+ std::vector<int> order;
+ order.push_back( DecryptVerifyWizard::OperationsPage );
+ order.push_back( DecryptVerifyWizard::ResultPage );
+ q->setPageOrder( order );
+ operationsPage.setCommitPage( true );
}
DecryptVerifyWizard::Private::~Private() {}
@@ -237,19 +238,19 @@
-OperationsPage::OperationsPage( QWidget * p )
- : QWizardPage( p ), m_widgets(), m_ui( this )
+OperationsWidget::OperationsWidget( QWidget * p )
+ : WizardPage( p ), m_widgets(), m_ui( this )
{
setTitle( i18n("Choose operations to be performed") );
setSubTitle( i18n("Here you can check and, if needed, override "
"the operations Kleopatra detected for the input given.") );
setCommitPage( true );
- setButtonText( QWizard::CommitButton, i18n("&Decrypt/Verify") );
+ setCustomNextButton( KGuiItem( i18n( "&Decrypt/Verify" ) ) );
}
-OperationsPage::~OperationsPage() {}
+OperationsWidget::~OperationsWidget() {}
-OperationsPage::UI::UI( OperationsPage * q )
+OperationsWidget::UI::UI( OperationsWidget * q )
: outputDirectoryLB( i18n("&Output directory:"), q ),
outputDirectoryFNR( q ),
scrollArea( q ),
@@ -275,7 +276,7 @@
hlay.addWidget( &outputDirectoryFNR );
}
-void OperationsPage::ensureIndexAvailable( unsigned int idx ) {
+void OperationsWidget::ensureIndexAvailable( unsigned int idx ) {
if ( idx < m_widgets.size() )
return;
@@ -299,17 +300,16 @@
-ResultPage::ResultPage( QWidget * p )
- : QWizardPage( p ), m_widgets(), m_completed( false ), m_ui( this )
+ResultWidget::ResultWidget( QWidget * p )
+ : WizardPage( p ), m_widgets(), m_completed( false ), m_ui( this )
{
setTitle( i18n("Results") );
setSubTitle( i18n("Detailed operation results") );
- setButtonText( QWizard::FinishButton, i18n("&OK") );
}
-ResultPage::~ResultPage() {}
+ResultWidget::~ResultWidget() {}
-ResultPage::UI::UI( ResultPage * q )
+ResultWidget::UI::UI( ResultWidget * q )
: scrollArea( q ),
vlay( q )
{
@@ -322,7 +322,7 @@
vlay.addWidget( &scrollArea );
}
-void ResultPage::ensureIndexAvailable( unsigned int idx ) {
+void ResultWidget::ensureIndexAvailable( unsigned int idx ) {
if ( idx < m_widgets.size() )
return;
--- trunk/KDE/kdepim/kleopatra/crypto/gui/decryptverifywizard.h #797605:797606
@@ -33,7 +33,7 @@
#ifndef __KLEOPATRA_CRYPTO_GUI_DECRYPTVERIFYWIZARD_H__
#define __KLEOPATRA_CRYPTO_GUI_DECRYPTVERIFYWIZARD_H__
-#include <QWizard>
+#include <crypto/gui/wizard.h>
#include <utils/pimpl_ptr.h>
@@ -47,9 +47,14 @@
class DecryptVerifyOperationWidget;
class ResultDisplayWidget;
- class DecryptVerifyWizard : public QWizard {
+ class DecryptVerifyWizard : public Wizard {
Q_OBJECT
public:
+ enum Page {
+ OperationsPage=0,
+ ResultPage
+ };
+
explicit DecryptVerifyWizard( QWidget * parent=0, Qt::WindowFlags f=0 );
~DecryptVerifyWizard();
@@ -61,16 +66,16 @@
DecryptVerifyOperationWidget * operationWidget( unsigned int idx );
ResultDisplayWidget * resultWidget( unsigned int idx );
- /* reimp */ int nextId() const;
-
public Q_SLOTS:
void setOperationCompleted();
Q_SIGNALS:
- void canceled();
void operationPrepared();
private:
+ /* reimpl */ void onNext( int id );
+
+ private:
class Private;
kdtools::pimpl_ptr<Private> d;
};
--- trunk/KDE/kdepim/kleopatra/crypto/gui/wizard.cpp #797605:797606
@@ -37,9 +37,11 @@
#include <utils/kleo_assert.h>
+#include <KDebug>
+#include <KGuiItem>
#include <KLocale>
#include <KPushButton>
-#include <kdebug.h>
+#include <KStandardGuiItem>
#include <QDialogButtonBox>
#include <QFrame>
@@ -73,11 +75,11 @@
std::map<int, WizardPage*> idToPage;
int currentId;
QStackedWidget* stack;
- QPushButton* nextButton;
+ KPushButton* nextButton;
QPushButton* backButton;
QPushButton* cancelButton;
- QString finishItem;
- QString nextItem;
+ KGuiItem finishItem;
+ KGuiItem nextItem;
QFrame* titleFrame;
QLabel* titleLabel;
QLabel* subTitleLabel;
@@ -90,8 +92,8 @@
: q( qq ), currentId( -1 ), stack( new QStackedWidget )
{
const QWizard wiz;
- nextItem = wiz.buttonText( QWizard::NextButton );
- finishItem = wiz.buttonText( QWizard::FinishButton );
+ nextItem = KStandardGuiItem::forward();
+ finishItem = KStandardGuiItem::ok();
QVBoxLayout * const top = new QVBoxLayout( q );
top->setMargin( 0 );
titleFrame = new QFrame;
@@ -132,8 +134,8 @@
q->connect( backButton, SIGNAL( clicked() ), q, SLOT( back() ) );
box->addButton( backButton, QDialogButtonBox::ActionRole );
- nextButton = new QPushButton;
- nextButton->setText( nextItem );
+ nextButton = new KPushButton;
+ nextButton->setGuiItem( nextItem );
q->connect( nextButton, SIGNAL( clicked() ), q, SLOT( next() ) );
box->addButton( nextButton, QDialogButtonBox::ActionRole );
buttonLayout->addWidget( box );
@@ -156,10 +158,17 @@
{
const bool isLast = isLastPage( currentId );
const bool canGoToNext = q->canGoToNextPage();
- nextButton->setText( isLast ? finishItem : nextItem );
+ WizardPage* const page = q->page( currentId );
+ assert( page );
+ KGuiItem customNext = page->customNextButton();
+ if ( customNext.text().isEmpty() && customNext.icon().isNull() )
+ nextButton->setGuiItem( isLast ? finishItem : nextItem );
+ else
+ nextButton->setGuiItem( customNext );
nextButton->setEnabled( canGoToNext );
cancelButton->setEnabled( !isLast || !canGoToNext );
backButton->setEnabled( q->canGoToPreviousPage() );
+
}
void Wizard::Private::updateHeader()
--- trunk/KDE/kdepim/kleopatra/crypto/gui/wizardpage.cpp #797605:797606
@@ -35,6 +35,8 @@
#include "wizardpage.h"
+#include <KGuiItem>
+
using namespace Kleo::Crypto::Gui;
class WizardPage::Private {
@@ -49,6 +51,7 @@
QString title;
QString subTitle;
QString explanation;
+ KGuiItem customNextButton;
};
@@ -116,6 +119,14 @@
emit explanationChanged();
}
+KGuiItem WizardPage::customNextButton() const
+{
+ return d->customNextButton;
+}
+void WizardPage::setCustomNextButton( const KGuiItem& item )
+{
+ d->customNextButton = item;
+}
WizardPage::~WizardPage() {}
--- trunk/KDE/kdepim/kleopatra/crypto/gui/wizardpage.h #797605:797606
@@ -37,6 +37,8 @@
#include <utils/pimpl_ptr.h>
+class KGuiItem;
+
namespace Kleo {
namespace Crypto {
namespace Gui {
@@ -64,6 +66,9 @@
QString explanation() const;
void setExplanation( const QString& explanation );
+ KGuiItem customNextButton() const;
+ void setCustomNextButton( const KGuiItem& item );
+
Q_SIGNALS:
void completeChanged();
void explanationChanged();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic