You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
3.2 KiB
C++
79 lines
3.2 KiB
C++
/***************************************************************************
|
|
* Copyright (C) 2006 by Peter Penz *
|
|
* peter.penz@gmx.at *
|
|
* *
|
|
* 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. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
* GNU General Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU General Public License *
|
|
* along with this program; if not, write to the *
|
|
* Free Software Foundation, Inc., *
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
|
***************************************************************************/
|
|
#ifndef PROGRESSINDICATOR_H
|
|
#define PROGRESSINDICATOR_H
|
|
|
|
#include <tqdatetime.h>
|
|
|
|
/**
|
|
* Allows to show a progress of synchronous operations. Sample code:
|
|
* \code
|
|
* const int operationsCount = 100;
|
|
* ProgressIndicator progressIndicator(i18n("Loading..."),
|
|
* i18n("Loading finished."),
|
|
* operationsCount);
|
|
* for (int i = 0; i < operationsCount; ++i) {
|
|
* progressIndicator.execOperation();
|
|
* // do synchronous operation...
|
|
* }
|
|
* \endcode
|
|
* The progress indicator takes care to show the progress bar only after
|
|
* a delay of around 500 milliseconds. This means if all operations are
|
|
* executing within 500 milliseconds, no progress bar is shown at all.
|
|
* As soon as the progress bar is shown, the application still may process
|
|
* events, but the the Dolphin main widget is disabled.
|
|
*
|
|
* @author Peter Penz <peter.penz@gmx.at>
|
|
*/
|
|
class ProgressIndicator
|
|
{
|
|
public:
|
|
/**
|
|
* @param progressText Text for the progress bar (e. g. "Loading...").
|
|
* @param finishedText Text which is displayed after the operations have been finished
|
|
* (e. g. "Loading finished.").
|
|
* @param operationsCount Number of operations.
|
|
*/
|
|
ProgressIndicator(const TQString& progressText,
|
|
const TQString& finishedText,
|
|
int operationsCount);
|
|
|
|
/**
|
|
* Sets the progress to 100 % and displays the 'finishedText' property
|
|
* in the status bar.
|
|
*/
|
|
~ProgressIndicator();
|
|
|
|
/**
|
|
* Increases the progress and should be invoked
|
|
* before each operation.
|
|
*/
|
|
void execOperation();
|
|
|
|
private:
|
|
bool m_showProgress;
|
|
int m_operationsCount;
|
|
int m_operationsIndex;
|
|
TQTime m_startTime;
|
|
TQString m_finishedText;
|
|
};
|
|
|
|
#endif
|