• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

libkdepim

  • sources
  • kde-4.14
  • kdepim
  • libkdepim
  • progresswidget
progressmanager.h
Go to the documentation of this file.
1 /*
2  progressmanager.h
3 
4  This file is part of libkdepim.
5 
6  Copyright (C) 2004 Till Adam <adam@kde.org>
7 
8  This library is free software; you can redistribute it and/or
9  modify it under the terms of the GNU Library General Public
10  License as published by the Free Software Foundation; either
11  version 2 of the License, or (at your option) any later version.
12 
13  This library is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  Library General Public License for more details.
17 
18  You should have received a copy of the GNU Library General Public License
19  along with this library; see the file COPYING.LIB. If not, write to
20  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  Boston, MA 02110-1301, USA.
22 */
23 
24 #ifndef KDEPIM_PROGRESSMANAGER_H
25 #define KDEPIM_PROGRESSMANAGER_H
26 
27 #include "kdepim_export.h"
28 
29 #include <QObject>
30 #include <QString>
31 #include <QMap>
32 #include <QHash>
33 #include <QWeakPointer>
34 #include <QPointer>
35 namespace Akonadi {
36 class AgentInstance;
37 }
38 
39 namespace KPIM {
40 
41 class ProgressItem;
42 class ProgressManager;
43 typedef QMap<ProgressItem *, bool> ProgressItemMap;
44 
45 class KDEPIM_EXPORT ProgressItem : public QObject
46 {
47  Q_OBJECT
48  friend class ProgressManager;
49 
50 public:
51 
52  enum CryptoStatus {
53  Encrypted,
54  Unencrypted,
55  Unknown
56  };
57 
62  const QString &id() const { return mId; }
63 
67  ProgressItem *parent() const { return mParent.data(); }
68 
72  const QString &label() const { return mLabel; }
73 
77  void setLabel( const QString &v );
78 
82  const QString &status() const { return mStatus; }
87  void setStatus( const QString &v );
88 
92  bool canBeCanceled() const { return mCanBeCanceled; }
93 
97  void setCanBeCanceled(bool b);
98 
103  CryptoStatus cryptoStatus() const { return mCryptoStatus; }
104 
110  void setCryptoStatus( ProgressItem::CryptoStatus v );
111 
115  bool usesBusyIndicator() const { return mUsesBusyIndicator; }
116 
122  void setUsesBusyIndicator( bool useBusyIndicator );
123 
127  unsigned int progress() const { return mProgress; }
128 
133  void setProgress( unsigned int v );
134 
142  void setComplete();
143 
148  void reset();
149 
150  void cancel();
151 
152  // Often needed values for calculating progress.
153  void setTotalItems( unsigned int v ) { mTotal = v; }
154  unsigned int totalItems() const { return mTotal; }
155  void setCompletedItems( unsigned int v ) { mCompleted = v; }
156  void incCompletedItems( unsigned int v = 1 ) { mCompleted += v; }
157  unsigned int completedItems() const { return mCompleted; }
158 
162  void updateProgress();
163 
164  void addChild( ProgressItem *kiddo );
165  void removeChild( ProgressItem *kiddo );
166 
167  bool canceled() const { return mCanceled; }
168 
169  unsigned int typeProgressItem() const;
170  void setTypeProgressItem(unsigned int);
171 
172 Q_SIGNALS:
177  void progressItemAdded( KPIM::ProgressItem * );
178 
184  void progressItemProgress( KPIM::ProgressItem *, unsigned int );
185 
192  void progressItemCompleted( KPIM::ProgressItem * );
193 
204  void progressItemCanceled( KPIM::ProgressItem * );
205 
212  void progressItemStatus( KPIM::ProgressItem *, const QString & );
213 
220  void progressItemLabel( KPIM::ProgressItem *, const QString & );
221 
228  void progressItemCryptoStatus( KPIM::ProgressItem *, KPIM::ProgressItem::CryptoStatus );
229 
237  void progressItemUsesBusyIndicator( KPIM::ProgressItem *item, bool value );
238 
239 protected:
240  /* Only to be used by our good friend the ProgressManager */
241  ProgressItem(ProgressItem *parent, const QString &id, const QString &label,
242  const QString &status, bool isCancellable, CryptoStatus cryptoStatus );
243  virtual ~ProgressItem();
244 
245 private:
246  QString mId;
247  QString mLabel;
248  QString mStatus;
249  QWeakPointer<ProgressItem>mParent;
250  bool mCanBeCanceled;
251  unsigned int mProgress;
252  ProgressItemMap mChildren;
253  unsigned int mTotal;
254  unsigned int mCompleted;
255  CryptoStatus mCryptoStatus;
256  unsigned int mType;
257  bool mWaitingForKids;
258  bool mCanceled;
259  bool mUsesBusyIndicator;
260  bool mCompletedCalled;
261 };
262 
263 struct ProgressManagerPrivate;
264 
285 class KDEPIM_EXPORT ProgressManager : public QObject
286 {
287 
288  Q_OBJECT
289 
290  friend struct ProgressManagerPrivate;
291 
292 public:
293  virtual ~ProgressManager();
294 
298  static ProgressManager *instance();
299 
306  static QString getUniqueID();
307 
313  static ProgressItem *createProgressItem( unsigned int progressType, const QString &label );
314 
320  static ProgressItem *createProgressItem( const QString &label );
321 
336  static ProgressItem *createProgressItem( ProgressItem *parent,
337  const QString &id,
338  const QString &label,
339  const QString &status = QString(),
340  bool canBeCanceled = true,
341  KPIM::ProgressItem::CryptoStatus cryptoStatus = KPIM::ProgressItem::Unencrypted );
342 
347  static ProgressItem *createProgressItem( const QString &parent,
348  const QString &id,
349  const QString &label,
350  const QString &status = QString(),
351  bool canBeCanceled = true,
352  KPIM::ProgressItem::CryptoStatus cryptoStatus = KPIM::ProgressItem::Unencrypted );
353 
357  static ProgressItem *createProgressItem( const QString &id,
358  const QString &label,
359  const QString &status = QString(),
360  bool canBeCanceled = true,
361  KPIM::ProgressItem::CryptoStatus cryptoStatus = KPIM::ProgressItem::Unencrypted );
362 
368  static ProgressItem *createProgressItem( ProgressItem *parent,
369  const Akonadi::AgentInstance &agent,
370  const QString &id,
371  const QString &label,
372  const QString &status = QString(),
373  bool canBeCanceled = true,
374  KPIM::ProgressItem::CryptoStatus cryptoStatus = KPIM::ProgressItem::Unencrypted );
375 
379  bool isEmpty() const;
380 
388  ProgressItem *singleItem() const;
389 
394  static void emitShowProgressDialog();
395 
396 Q_SIGNALS:
398  void progressItemAdded( KPIM::ProgressItem * );
400  void progressItemProgress( KPIM::ProgressItem *, unsigned int );
402  void progressItemCompleted( KPIM::ProgressItem * );
404  void progressItemCanceled( KPIM::ProgressItem * );
406  void progressItemStatus( KPIM::ProgressItem *, const QString & );
408  void progressItemLabel( KPIM::ProgressItem *, const QString & );
410  void progressItemCryptoStatus( KPIM::ProgressItem *, KPIM::ProgressItem::CryptoStatus );
412  void progressItemUsesBusyIndicator( KPIM::ProgressItem*, bool );
413 
418  void showProgressDialog();
419 
420 public Q_SLOTS:
421 
427  void slotStandardCancelHandler( KPIM::ProgressItem *item );
428 
432  void slotAbortAll();
433 
434 private Q_SLOTS:
435  void slotTransactionCompleted( KPIM::ProgressItem *item );
436 
437 private:
438  ProgressManager();
439  // prevent unsolicited copies
440  ProgressManager( const ProgressManager & );
441 
442  virtual ProgressItem *createProgressItemImpl(ProgressItem *parent,
443  const QString &id,
444  const QString &label,
445  const QString &status,
446  bool cancellable,
447  ProgressItem::CryptoStatus cryptoStatus, unsigned int progressType = 0);
448 
449  virtual ProgressItem *createProgressItemImpl(const QString &parent,
450  const QString &id,
451  const QString &label,
452  const QString &status,
453  bool cancellable,
454  ProgressItem::CryptoStatus cryptoStatus, unsigned int progressType = 0 );
455  ProgressItem *createProgressItemForAgent( ProgressItem *parent,
456  const Akonadi::AgentInstance &instance,
457  const QString &id,
458  const QString &label,
459  const QString &status,
460  bool cancellable,
461  ProgressItem::CryptoStatus cryptoStatus, unsigned int progressType = 0 );
462  void emitShowProgressDialogImpl();
463 
464  QHash< QString, ProgressItem* > mTransactions;
465  static unsigned int uID;
466 };
467 
468 }
469 
470 #endif // __KPIM_PROGRESSMANAGER_H__
KPIM::ProgressItem::canceled
bool canceled() const
Definition: progressmanager.h:167
KPIM::ProgressItem::id
const QString & id() const
Definition: progressmanager.h:62
kdepim_export.h
KPIM::ProgressItemMap
QMap< ProgressItem *, bool > ProgressItemMap
Definition: progressmanager.h:42
KPIM::ProgressItem::totalItems
unsigned int totalItems() const
Definition: progressmanager.h:154
KPIM::ProgressItem::Unencrypted
Definition: progressmanager.h:54
QMap< ProgressItem *, bool >
KPIM::ProgressItem::canBeCanceled
bool canBeCanceled() const
Definition: progressmanager.h:92
KPIM::ProgressItem::parent
ProgressItem * parent() const
Definition: progressmanager.h:67
KPIM::ProgressItem::incCompletedItems
void incCompletedItems(unsigned int v=1)
Definition: progressmanager.h:156
KPIM::ProgressItem::label
const QString & label() const
Definition: progressmanager.h:72
KPIM::ProgressManager
The ProgressManager singleton keeps track of all ongoing transactions and notifies observers (progres...
Definition: progressmanager.h:285
QHash
QObject
KPIM::ProgressItem::usesBusyIndicator
bool usesBusyIndicator() const
Definition: progressmanager.h:115
QString
KPIM::ProgressItem::progress
unsigned int progress() const
Definition: progressmanager.h:127
KPIM::ProgressItem::cryptoStatus
CryptoStatus cryptoStatus() const
Definition: progressmanager.h:103
KPIM::ProgressItem
Definition: progressmanager.h:45
KPIM::ProgressItem::status
const QString & status() const
Definition: progressmanager.h:82
KPIM::ProgressItem::completedItems
unsigned int completedItems() const
Definition: progressmanager.h:157
KPIM::ProgressItem::CryptoStatus
CryptoStatus
Definition: progressmanager.h:52
QWeakPointer
KPIM::ProgressItem::setTotalItems
void setTotalItems(unsigned int v)
Definition: progressmanager.h:153
KPIM::ProgressItem::setCompletedItems
void setCompletedItems(unsigned int v)
Definition: progressmanager.h:155
KPIM::ProgressItem::Encrypted
Definition: progressmanager.h:53
KDEPIM_EXPORT
#define KDEPIM_EXPORT
Definition: kdepim_export.h:35
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:33:50 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkdepim

Skip menu "libkdepim"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal