From 5bed6e4a4c916a97f8fe4d1b07f7eecf4d733b90 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Fri, 22 Nov 2024 18:41:30 +0900 Subject: Rename 'digikam' folder to 'src' Signed-off-by: Michele Calgaro (cherry picked from commit ee0d99607c14cb63d3ebdb3a970b508949fa8219) --- src/libs/widgets/common/statusprogressbar.cpp | 171 ++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 src/libs/widgets/common/statusprogressbar.cpp (limited to 'src/libs/widgets/common/statusprogressbar.cpp') diff --git a/src/libs/widgets/common/statusprogressbar.cpp b/src/libs/widgets/common/statusprogressbar.cpp new file mode 100644 index 00000000..215f81fe --- /dev/null +++ b/src/libs/widgets/common/statusprogressbar.cpp @@ -0,0 +1,171 @@ +/* ============================================================ + * + * This file is a part of digiKam project + * http://www.digikam.org + * + * Date : 2007-01-24 + * Description : a progress bar used to display file access + * progress or a text in status bar. + * + * Copyright (C) 2007-2008 by Gilles Caulier + * + * 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, 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. + * + * ============================================================ */ + +// TQt includes. + +#include +#include +#include + +// KDE includes. + +#include +#include +#include +#include +#include + +// Local includes. + +#include "statusprogressbar.h" +#include "statusprogressbar.moc" + +namespace Digikam +{ + +class StatusProgressBarPriv +{ + +public: + + enum WidgetStackEnum + { + TextLabel=0, + ProgressBar + }; + + StatusProgressBarPriv() + { + textLabel = 0; + progressBar = 0; + progressWidget = 0; + cancelButton = 0; + } + + + TQWidget *progressWidget; + + TQPushButton *cancelButton; + + KSqueezedTextLabel *textLabel; + + KProgress *progressBar; +}; + +StatusProgressBar::StatusProgressBar(TQWidget *parent) + : TQWidgetStack(parent, 0, TQt::WDestructiveClose) +{ + d = new StatusProgressBarPriv; + setFocusPolicy(TQWidget::NoFocus); + + d->textLabel = new KSqueezedTextLabel(this); + d->progressWidget = new TQWidget(this); + TQHBoxLayout *hBox = new TQHBoxLayout(d->progressWidget); + d->progressBar = new KProgress(d->progressWidget); + setProgressTotalSteps(100); + d->cancelButton = new TQPushButton(d->progressWidget); + d->cancelButton->setFocusPolicy(TQWidget::NoFocus); + d->cancelButton->setSizePolicy( TQSizePolicy( TQSizePolicy::Minimum, TQSizePolicy::Minimum ) ); + d->cancelButton->setPixmap(SmallIcon("cancel")); + + // Parent widget will probably have the wait cursor set. + // Set arrow cursor to indicate the button can be clicked + d->cancelButton->setCursor(KCursor::arrowCursor()); + + hBox->addWidget(d->progressBar); + hBox->addWidget(d->cancelButton); + + addWidget(d->textLabel, StatusProgressBarPriv::TextLabel); + addWidget(d->progressWidget, StatusProgressBarPriv::ProgressBar); + + connect( d->cancelButton, TQ_SIGNAL( clicked() ), + this, TQ_SIGNAL( signalCancelButtonPressed() ) ); + + progressBarMode(TextMode); +} + +StatusProgressBar::~StatusProgressBar() +{ + delete d; +} + +void StatusProgressBar::setText(const TQString& text) +{ + d->textLabel->setText(text); +} + +void StatusProgressBar::setAlignment(int a) +{ + d->textLabel->setAlignment(a); +} + +int StatusProgressBar::progressValue() +{ + return d->progressBar->progress(); +} + +void StatusProgressBar::setProgressValue(int v) +{ + d->progressBar->setProgress(v); +} + +void StatusProgressBar::setProgressTotalSteps(int v) +{ + d->progressBar->setTotalSteps(v); +} + +int StatusProgressBar::progressTotalSteps() +{ + return d->progressBar->totalSteps(); +} + +void StatusProgressBar::setProgressText(const TQString& text) +{ + d->progressBar->setFormat( text + TQString ("%p%") ); + d->progressBar->update(); +} + +void StatusProgressBar::progressBarMode(int mode, const TQString& text) +{ + if ( mode == TextMode) + { + raiseWidget(StatusProgressBarPriv::TextLabel); + setProgressValue(0); + setText( text ); + } + else if ( mode == ProgressBarMode ) + { + d->cancelButton->hide(); + raiseWidget(StatusProgressBarPriv::ProgressBar); + setProgressText( text ); + } + else // CancelProgressBarMode + { + d->cancelButton->show(); + raiseWidget(StatusProgressBarPriv::ProgressBar); + setProgressText( text ); + } +} + +} // namespace Digikam -- cgit v1.2.3