/* * * $Id: k3bprogressdialog.cpp 619556 2007-01-03 17:38:12Z trueg $ * Copyright (C) 2003 Sebastian Trueg * * This file is part of the K3b project. * Copyright (C) 1998-2007 Sebastian Trueg * * 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 #include #include #include #include #include #include #include K3bProgressDialog::K3bProgressDialog( const TQString& text, TQWidget* parent, const TQString& caption, const char* name ) : KDialogBase( parent, name, true, caption, Cancel|Ok, Ok, true ) { TQFrame* main = makeMainWidget(); TQGridLayout* mainLayout = new TQGridLayout( main ); mainLayout->setMargin( marginHint() ); mainLayout->setSpacing( spacingHint() ); m_label = new TQLabel( text, main ); m_stack = new TQWidgetStack( 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 TQString& 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"