Files
qt-creator/src/plugins/coreplugin/progressmanager/futureprogress.h
Christian Kandeler 69530f76aa Core: Add "canceled" signal to class FutureProgress.
This allows clients to get notified that the operation has been canceled
by the user without the need to create an additional QFutureWatcher
themselves.

Change-Id: I928f87eef98ce762d77dcc6962c082fe49f38f6e
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-05-15 14:23:12 +02:00

104 lines
2.7 KiB
C++

/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** Other Usage
**
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
**************************************************************************/
#ifndef FUTUREPROGRESS_H
#define FUTUREPROGRESS_H
#include <coreplugin/core_global.h>
#include <QString>
#include <QFuture>
#include <QWidget>
namespace Core {
struct FutureProgressPrivate;
class CORE_EXPORT FutureProgress : public QWidget
{
Q_OBJECT
public:
enum KeepOnFinishType {
HideOnFinish = 0,
KeepOnFinishTillUserInteraction = 1,
KeepOnFinish = 2
};
explicit FutureProgress(QWidget *parent = 0);
virtual ~FutureProgress();
virtual bool eventFilter(QObject *object, QEvent *);
void setFuture(const QFuture<void> &future);
QFuture<void> future() const;
void setTitle(const QString &title);
QString title() const;
void setType(const QString &type);
QString type() const;
void setKeepOnFinish(KeepOnFinishType keepType);
bool keepOnFinish() const;
bool hasError() const;
void setWidget(QWidget *widget);
QWidget *widget() const;
signals:
void clicked();
void finished();
void canceled();
void removeMe();
protected:
void mousePressEvent(QMouseEvent *event);
void resizeEvent(QResizeEvent *);
private slots:
void updateToolTip(const QString &);
void cancel();
void setStarted();
void setFinished();
void setProgressRange(int min, int max);
void setProgressValue(int val);
void setProgressText(const QString &text);
void fadeAway();
private:
FutureProgressPrivate *d;
};
} // namespace Core
#endif // FUTUREPROGRESS_H