[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/kleopatra/crypto
From: Frank Osterfeld <frank.osterfeld () kdemail ! net>
Date: 2008-05-09 8:24:14
Message-ID: 1210321454.578614.14124.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 805700 by osterfeld:
Support multiple progress labels, used in the S/E files case to have separate \
progress information for S/Mime and OpenPGP
M +35 -5 gui/resultpage.cpp
M +1 -1 gui/resultpage.h
M +5 -0 signencryptfilestask.cpp
M +1 -0 signencryptfilestask.h
M +4 -0 task.cpp
M +2 -0 task.h
--- trunk/KDE/kdepim/kleopatra/crypto/gui/resultpage.cpp #805699:805700
@@ -43,6 +43,7 @@
#include <KLocalizedString>
#include <QCheckBox>
+#include <QHash>
#include <QHBoxLayout>
#include <QIcon>
#include <QLabel>
@@ -67,10 +68,12 @@
void allDone();
void addResultWidget( ResultItemWidget* widget );
void keepOpenWhenDone( bool keep );
+ QLabel * labelForTag( const QString & tag );
shared_ptr<TaskCollection> m_tasks;
QProgressBar* m_progressBar;
- QLabel* m_progressLabel;
+ QHash<QString, QLabel*> m_progressLabelByTag;
+ QVBoxLayout* m_progressLabelLayout;
int m_lastErrorItemIndex;
ScrollArea* m_scrollArea;
ResultListWidget* m_resultList;
@@ -89,8 +92,9 @@
ResultPage::Private::Private( ResultPage* qq ) : q( qq ), m_lastErrorItemIndex( 0 )
{
QBoxLayout* const layout = new QVBoxLayout( q );
- m_progressLabel = new QLabel;
- layout->addWidget( m_progressLabel );
+ QWidget* const labels = new QWidget;
+ m_progressLabelLayout = new QVBoxLayout( labels );
+ layout->addWidget( labels );
m_progressBar = new QProgressBar;
layout->addWidget( m_progressBar );
m_resultList = new ResultListWidget;
@@ -121,8 +125,13 @@
q->setAutoAdvance( !m_keepOpenCB->isChecked() && !m_tasks->errorOccurred() );
m_progressBar->setRange( 0, 100 );
m_progressBar->setValue( 100 );
- m_progressLabel->setText( i18n( "All operations completed." ) );
m_tasks.reset();
+ Q_FOREACH ( const QString & i, m_progressLabelByTag.keys() ) {
+ if ( !i.isEmpty() )
+ m_progressLabelByTag.value( i )->setText( i18n("%1: All operations \
completed.", i ) ); + else
+ m_progressLabelByTag.value( i )->setText( i18n("All operations \
completed." ) ); + }
emit q->completeChanged();
}
@@ -133,7 +142,13 @@
void ResultPage::Private::started( const shared_ptr<Task> & task )
{
assert( task );
- m_progressLabel->setText( i18nc( "number, operation description", "Operation %1: \
%2", m_tasks->numberOfCompletedTasks() + 1, task->label() ) ); + const QString tag \
= task->tag(); + QLabel * const label = labelForTag( tag );
+ assert( label );
+ if ( tag.isEmpty() )
+ label->setText( i18nc( "number, operation description", "Operation %1: %2", \
m_tasks->numberOfCompletedTasks() + 1, task->label() ) ); + else
+ label->setText( i18nc( "tag( \"OpenPGP\" or \"CMS\"), operation \
description", "%1: %2", tag, task->label() ) ); }
ResultPage::ResultPage( QWidget* parent, Qt::WindowFlags flags ) : WizardPage( \
parent, flags ), d( new Private( this ) ) @@ -157,6 +172,7 @@
void ResultPage::setTaskCollection( const shared_ptr<TaskCollection> & coll )
{
+ assert( !d->m_tasks );
if ( d->m_tasks == coll )
return;
d->m_tasks = coll;
@@ -170,9 +186,23 @@
this, SLOT(result(boost::shared_ptr<const Kleo::Crypto::Task::Result>)) \
);
connect( d->m_tasks.get(), \
SIGNAL(started(boost::shared_ptr<Kleo::Crypto::Task>)),
this, SLOT(started(boost::shared_ptr<Kleo::Crypto::Task>)) );
+
+ Q_FOREACH ( const shared_ptr<Task> & i, d->m_tasks->tasks() ) // create labels \
for all tags in collection + assert( i && d->labelForTag( i->tag() ) );
emit completeChanged();
}
+QLabel* ResultPage::Private::labelForTag( const QString & tag ) {
+ if ( QLabel * const label = m_progressLabelByTag.value( tag ) )
+ return label;
+ QLabel* label = new QLabel;
+ label->setTextFormat( Qt::RichText );
+ label->setWordWrap( true );
+ m_progressLabelLayout->addWidget( label );
+ m_progressLabelByTag.insert( tag, label );
+ return label;
+}
+
bool ResultPage::isComplete() const
{
return d->m_tasks ? d->m_tasks->allTasksCompleted() : true;
--- trunk/KDE/kdepim/kleopatra/crypto/gui/resultpage.h #805699:805700
@@ -59,7 +59,7 @@
void setTaskCollection( const boost::shared_ptr<TaskCollection> & coll );
- bool isComplete() const;
+ /* reimp */ bool isComplete() const;
bool keepOpenWhenDone() const;
void setKeepOpenWhenDone( bool keep );
--- trunk/KDE/kdepim/kleopatra/crypto/signencryptfilestask.cpp #805699:805700
@@ -34,6 +34,7 @@
#include "signencryptfilestask.h"
+#include <utils/formatting.h>
#include <utils/input.h>
#include <utils/output.h>
#include <utils/stl_util.h>
@@ -328,6 +329,10 @@
return d->input ? d->input->label() : QString();
}
+QString SignEncryptFilesTask::tag() const {
+ return Formatting::displayName( protocol() );
+}
+
unsigned long long SignEncryptFilesTask::inputSize() const
{
return QFileInfo( d->inputFileName ).size();
--- trunk/KDE/kdepim/kleopatra/crypto/signencryptfilestask.h #805699:805700
@@ -74,6 +74,7 @@
/* reimp */ void cancel();
/* reimp */ QString label() const;
+ /* reimp */ QString tag() const;
private:
/* reimp */ void doStart();
--- trunk/KDE/kdepim/kleopatra/crypto/task.cpp #805699:805700
@@ -137,6 +137,10 @@
return inputSize();
}
+QString Task::tag() const {
+ return QString();
+}
+
QString Task::progressLabel() const
{
return d->m_progressLabel;
--- trunk/KDE/kdepim/kleopatra/crypto/task.h #805699:805700
@@ -65,6 +65,8 @@
virtual QString label() const = 0;
+ virtual QString tag() const;
+
QString progressLabel() const;
unsigned long long processedSize() const;
unsigned long long totalSize() const;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic