Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

statusWidget.cpp

Go to the documentation of this file.
00001 //==============================================
00002 //  copyright            : (C) 2003 by Will Stokes
00003 //==============================================
00004 //  This program is free software; you can redistribute it 
00005 //  and/or modify it under the terms of the GNU General 
00006 //  Public License as published by the Free Software 
00007 //  Foundation; either version 2 of the License, or  
00008 //  (at your option) any later version.         
00009 //
00010 //  As a special exception, Will Stokes gives permission to 
00011 //  link this program with Qt non-commercial edition, and 
00012 //  distribute the resulting executable, without including the 
00013 //  source code for the Qt non-commercial edition in the 
00014 //  source distribution. 
00015 //==============================================
00016 
00017 //Systemwide includes
00018 #include <qlayout.h>
00019 #include <qlabel.h>
00020 #include <qfont.h>
00021 #include <qframe.h>
00022 #include <qprogressbar.h>
00023 
00024 //Projectwide includes
00025 #include "statusWidget.h"
00026 
00027 //==============================================
00028 StatusWidget::StatusWidget(QWidget *parent, 
00029                          const char* name ) : QWidget(parent,name)
00030 {
00031   //create status message
00032   statusMessage = new QLabel( this );
00033   statusMessage->setText( "" );
00034   statusMessage->setFont( QFont( "Times", 12, QFont::Bold ) );
00035 
00036   //create progress message and bar
00037   progressFrame = new QFrame( this );
00038   progressMessage = new QLabel( progressFrame );
00039   progressMessage->setText( "" );
00040   progressMessage->setFont( QFont( "Times", 12, QFont::Bold ) );
00041   progressBar = new QProgressBar( progressFrame );
00042   progressBar->setCenterIndicator(true);
00043   curStep = 0;
00044   
00045   //place progress items in their own grid  
00046   progressGrid = new QGridLayout( progressFrame, 1, 2, 0);
00047   progressGrid->addWidget( progressMessage, 0, 0 );
00048   progressGrid->addWidget( progressBar, 0, 1 );
00049   
00050   //place progress frame and status message in main grid
00051   grid = new QGridLayout( this, 1, 2, 0 );
00052   grid->addWidget( progressFrame, 0, 0 );
00053   grid->addWidget( statusMessage, 0, 0 );
00054   grid->setColStretch( 1, 1 );
00055 
00056   //set minimum height to that of progress frame so height doesn't
00057   //shift when we go back and forth between modes
00058   grid->addRowSpacing( 0, progressFrame->frameSize().height() );
00059   
00060   //hide both status message and progress bar until need to be shown 
00061   progressFrame->hide();
00062 }
00063 //==============================================
00064 StatusWidget::~StatusWidget()
00065 {
00066 }
00067 //==============================================
00068 void StatusWidget::showProgressBar(QString message, int numSteps)
00069 {
00070   //hide status message
00071   statusMessage->hide();
00072   
00073   //setup progress bar and show it
00074   progressMessage->setText( message );
00075   progressBar->setProgress( 0, numSteps );
00076   curStep = 0;
00077   progressFrame->show();
00078 }
00079 //==============================================
00080 void StatusWidget::updateProgress(int progress)
00081 {
00082   progressBar->setProgress( progress );
00083 }
00084 //==============================================
00085 void StatusWidget::incrementProgress()
00086 {
00087   curStep++;
00088   progressBar->setProgress( curStep );
00089 }
00090 //==============================================
00091 void StatusWidget::setStatus( QString message )
00092 {
00093   //hide progress bar
00094   progressFrame->hide();
00095   
00096   //update status message and show
00097   statusMessage->setText( message );
00098   statusMessage->show();
00099 }
00100 //==============================================
00101 void StatusWidget::clearAll()
00102 {
00103   //hide both status message and progress bar
00104   progressBar->hide();
00105   statusMessage->setText( "" );
00106   statusMessage->show();
00107 }
00108 //==============================================

Generated on Thu Nov 13 00:10:54 2003 for AlbumShaper by doxygen 1.3.4