kleopatra
command.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef __KLEOPATRA_COMMANDS_COMMAND_H__
00034 #define __KLEOPATRA_COMMANDS_COMMAND_H__
00035
00036 #include <QObject>
00037
00038 #include <utils/pimpl_ptr.h>
00039
00040 #include <vector>
00041
00042 class QModelIndex;
00043 template <typename T> class QList;
00044 class QAbstractItemView;
00045
00046 namespace GpgME {
00047 class Key;
00048 }
00049
00050 namespace Kleo {
00051
00052 class KeyListController;
00053 class AbstractKeyListSortFilterProxyModel;
00054
00055 class Command : public QObject {
00056 Q_OBJECT
00057 public:
00058 explicit Command( KeyListController * parent );
00059 explicit Command( QAbstractItemView * view, KeyListController * parent );
00060 explicit Command( const GpgME::Key & key );
00061 explicit Command( const std::vector<GpgME::Key> & keys );
00062 ~Command();
00063
00064 enum Restriction {
00065 NoRestriction = 0,
00066 NeedSelection = 1,
00067 OnlyOneKey = 2,
00068 NeedSecretKey = 4,
00069 MustNotBeSecretKey = 8,
00070 MustBeOpenPGP = 16,
00071 MustBeCMS = 32,
00072
00073
00074 MayOnlyBeSecretKeyIfOwnerTrustIsNotYetUltimate = 64,
00075
00076 _AllRestrictions_Helper,
00077 AllRestrictions = 2*(_AllRestrictions_Helper-1) - 1
00078 };
00079
00080 Q_DECLARE_FLAGS( Restrictions, Restriction )
00081
00082 static Restrictions restrictions() { return NoRestriction; }
00083
00084 void setParentWidget( QWidget* widget );
00085 void setView( QAbstractItemView * view );
00086 void setIndex( const QModelIndex & idx );
00087 void setIndexes( const QList<QModelIndex> & idx );
00088 void setKey( const GpgME::Key & key );
00089 void setKeys( const std::vector<GpgME::Key> & keys );
00090
00091 void setAutoDelete( bool on );
00092 bool autoDelete() const;
00093
00094 void setWarnWhenRunningAtShutdown( bool warn );
00095 bool warnWhenRunningAtShutdown() const;
00096
00097 public Q_SLOTS:
00098 void start();
00099 void cancel();
00100
00101 Q_SIGNALS:
00102 void info( const QString & message, int timeout = 0 );
00103 void progress( const QString & message, int current, int total );
00104 void finished();
00105 void canceled();
00106
00107 private:
00108 virtual void doStart() = 0;
00109 virtual void doCancel() = 0;
00110
00111 protected:
00112 void addTemporaryView( const QString & title, AbstractKeyListSortFilterProxyModel * proxy=0 );
00113
00114 protected:
00115 class Private;
00116 kdtools::pimpl_ptr<Private> d;
00117 protected:
00118 explicit Command( Private * pp );
00119 explicit Command( QAbstractItemView * view, Private * pp );
00120 explicit Command( const std::vector<GpgME::Key> & keys, Private * pp );
00121 explicit Command( const GpgME::Key & key, Private * pp );
00122 };
00123
00124 }
00125
00126 Q_DECLARE_OPERATORS_FOR_FLAGS( Kleo::Command::Restrictions )
00127
00128 #endif