1/*
2 This file is part of the KDE project
3 SPDX-FileCopyrightText: 2000 Matej Koss <koss@miesto.sk>
4 SPDX-FileCopyrightText: 2007 Kevin Ottens <ervin@kde.org>
5
6 SPDX-License-Identifier: LGPL-2.0-only
7*/
8
9#ifndef KSTATUSBARJOBTRACKER_H
10#define KSTATUSBARJOBTRACKER_H
11
12#include <kabstractwidgetjobtracker.h>
13
14class KStatusBarJobTrackerPrivate;
15
16/*!
17 * \class KStatusBarJobTracker
18 *
19 * \inmodule KJobWidgets
20 *
21 * \brief This class implements a job tracker with a widget suited for embedding in a
22 * status bar.
23 */
24class KJOBWIDGETS_EXPORT KStatusBarJobTracker : public KAbstractWidgetJobTracker
25{
26 Q_OBJECT
27
28public:
29 /*!
30 * \value NoInformation Does not show any information
31 * \value LabelOnly Shows an informative label for job progress
32 * \value ProgressOnly Shows a progress bar with the job completion
33 */
34 enum StatusBarMode {
35 NoInformation = 0x0000,
36 LabelOnly = 0x0001,
37 ProgressOnly = 0x0002,
38 };
39 Q_DECLARE_FLAGS(StatusBarModes, StatusBarMode)
40
41 /*!
42 * Creates a new KStatusBarJobTracker
43 *
44 * \a parent the parent of this object and of the widget displaying the job progresses
45 *
46 * \a button true to display a stop button allowing to kill the job, false otherwise
47 */
48 explicit KStatusBarJobTracker(QWidget *parent = nullptr, bool button = true);
49
50 ~KStatusBarJobTracker() override;
51
52 void registerJob(KJob *job) override;
53
54 void unregisterJob(KJob *job) override;
55
56 QWidget *widget(KJob *job) override;
57
58 /*!
59 * Sets the mode of the status bar.
60 *
61 * \a statusBarMode what information the status bar will show (see StatusBarMode).
62 * LabelOnly by default
63 */
64 void setStatusBarMode(StatusBarModes statusBarMode);
65
66public Q_SLOTS:
67 void description(KJob *job, const QString &title, const QPair<QString, QString> &field1, const QPair<QString, QString> &field2) override;
68 void totalAmount(KJob *job, KJob::Unit unit, qulonglong amount) override;
69 void percent(KJob *job, unsigned long percent) override;
70 void speed(KJob *job, unsigned long value) override;
71 void slotClean(KJob *job) override;
72
73private:
74 Q_DECLARE_PRIVATE(KStatusBarJobTracker)
75};
76
77Q_DECLARE_OPERATORS_FOR_FLAGS(KStatusBarJobTracker::StatusBarModes)
78
79#endif
80

source code of kjobwidgets/src/kstatusbarjobtracker.h