/* For general Scribus (>=1.3.2) copyright and licensing information please refer to the COPYING file provided with the program. Following this notice may exist a copyright and/or license notice that predates the release of Scribus 1.3.2 for which a new license (GPL+exception) is in place. */ /*************************************************************************** * Copyright (C) 2005 by Craig Bradney * * cbradney@zip.com.au * * * * 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., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #ifndef MULTIPROGRESSDIALOG_H #define MULTIPROGRESSDIALOG_H #include "scribusapi.h" #include "ui_multiprogressdialog.h" #include #include #include #include #include #include #include #include #include class SCRIBUS_API MultiProgressDialog : public QDialog, Ui::MultiProgressDialog { Q_OBJECT public: MultiProgressDialog(QWidget* parent=0, Qt::WFlags f=0); /** * Create a multi progress bar dialog for long operations with multiple steps. The dialog includes * one standard progress bar, typically for the overall progress and others may be added easily. * @param titleText Title of the dialog * @param cancelButtonText Text of the cancel button.. Cancel, Close, @sa CommontStrings:: * @param parent Parent widget for the dialog, commonly ScMW * @param f Qt GUI flags */ MultiProgressDialog(const QString& titleText, const QString & cancelButtonText, QWidget* parent=0, Qt::WFlags f=0); ~MultiProgressDialog(); /** * Remove all progress bars other than the main one */ void removeExtraProgressBars(); /** * Add a list of progress bars, where barsList contains a list of references and barTexts * contains the labels for the bars. Set the bools in barsNumerical to true to get a "X of Y" indicator * Eg: * "MYBAR1" -> "My Bar 1:" * "MYBAR2" -> "My Bar 2:" * @param barsList * @param barsTexts * @param barsNumerical * @return Success */ bool addExtraProgressBars(const QStringList &barsList, const QStringList &barsTexts, const QList& barsNumerical); /** * Set a new label for a user defined progress bar * @param barName Progress bar name * @param newLabel New label * @return Success */ bool setLabel(const QString &barName, const QString & newLabel); /** * Set the total steps for a user defined progress bar * @param barName * @param totalSteps * @return Success */ bool setTotalSteps(const QString &barName, int totalSteps); /** * Set the progress for a user defined progress bar * @param barName * @param progress * @return */ bool setProgress(const QString &barName, int progress); /** * Set the prgress and total steps for a user defined progress bar * @param barName * @param progress * @param totalSteps * @return */ bool setProgress(const QString &barName, int progress, int totalSteps); /** * Set the overall total steps for the dialog * @param totalSteps */ void setOverallTotalSteps(int totalSteps); /** * Set the overall progress for the dialog * @param progress */ void setOverallProgress(int progress); /** * Set the overall progress and total steps for the dialog * @param progress * @param totalSteps */ void setOverallProgress(int progress, int totalSteps); /** * Create a new progress bar in one step * @param barName * @param barText * @param progress * @param totalSteps * @return */ bool setupBar(const QString &barName, const QString &barText, int progress, int totalSteps); /** * Set the cancel button text * @param cancelButtonText */ void setCancelButtonText(const QString & cancelButtonText); signals: void canceled(); protected: QStringList progressBarTitles; QMap progressBars; QMap progressLabels; private slots: void emitCancel(); }; #endif