diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:15:56 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-02-03 02:15:56 +0000 |
commit | 50b48aec6ddd451a6d1709c0942477b503457663 (patch) | |
tree | a9ece53ec06fd0a2819de7a2a6de997193566626 /libk3b/tools/k3bprogressdialog.cpp | |
download | k3b-50b48aec6ddd451a6d1709c0942477b503457663.tar.gz k3b-50b48aec6ddd451a6d1709c0942477b503457663.zip |
Added abandoned KDE3 version of K3B
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/k3b@1084400 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'libk3b/tools/k3bprogressdialog.cpp')
-rw-r--r-- | libk3b/tools/k3bprogressdialog.cpp | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/libk3b/tools/k3bprogressdialog.cpp b/libk3b/tools/k3bprogressdialog.cpp new file mode 100644 index 0000000..69a81f5 --- /dev/null +++ b/libk3b/tools/k3bprogressdialog.cpp @@ -0,0 +1,107 @@ +/* + * + * $Id: k3bprogressdialog.cpp 619556 2007-01-03 17:38:12Z trueg $ + * Copyright (C) 2003 Sebastian Trueg <trueg@k3b.org> + * + * This file is part of the K3b project. + * Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * See the file "COPYING" for the exact licensing terms. + */ + +#include "k3bprogressdialog.h" + +#include <k3bbusywidget.h> + +#include <qlabel.h> +#include <qpushbutton.h> +#include <qlayout.h> +#include <qframe.h> +#include <qwidgetstack.h> + +#include <klocale.h> +#include <kprogress.h> + + +K3bProgressDialog::K3bProgressDialog( const QString& text, + QWidget* parent, + const QString& caption, + const char* name ) + : KDialogBase( parent, name, true, caption, Cancel|Ok, Ok, true ) +{ + QFrame* main = makeMainWidget(); + QGridLayout* mainLayout = new QGridLayout( main ); + mainLayout->setMargin( marginHint() ); + mainLayout->setSpacing( spacingHint() ); + + m_label = new QLabel( text, main ); + m_stack = new QWidgetStack( main ); + m_progressBar = new KProgress( m_stack ); + m_busyWidget = new K3bBusyWidget( m_stack ); + m_stack->addWidget( m_progressBar ); + m_stack->addWidget( m_busyWidget ); + + mainLayout->addWidget( m_label, 0, 0 ); + mainLayout->addWidget( m_stack, 1, 0 ); + + showButtonOK( false ); +} + + +K3bProgressDialog::~K3bProgressDialog() +{} + + +int K3bProgressDialog::exec( bool progress ) +{ + if( progress ) + m_stack->raiseWidget( m_progressBar ); + else + m_stack->raiseWidget( m_busyWidget ); + + m_busyWidget->showBusy( !progress ); + + actionButton( Cancel )->setEnabled(true); + + return KDialogBase::exec(); +} + + +void K3bProgressDialog::setText( const QString& text ) +{ + m_label->setText( text ); +} + + +void K3bProgressDialog::slotFinished( bool success ) +{ + m_busyWidget->showBusy( false ); + + showButtonOK( true ); + showButtonCancel( false ); + + if( success ) + m_label->setText( i18n("Disk successfully erased. Please reload the disk.") ); + else + m_label->setText( i18n("K3b was unable to erase the disk.") ); +} + + +void K3bProgressDialog::slotCancel() +{ + emit cancelClicked(); + // we simply forbid to click cancel twice + actionButton( Cancel )->setEnabled(false); +} + + +void K3bProgressDialog::setProgress( int p ) +{ + m_progressBar->setProgress( p ); +} + +#include "k3bprogressdialog.moc" |