00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef PACKAGEMANAGER_H
00019 #define PACKAGEMANAGER_H
00020
00021 #include <QtDBus/QDBusPendingReply>
00022 #include <QObject>
00023 #include <QMap>
00024 #include <QList>
00025 #include <QVariant>
00026
00027 class QString;
00028 class QDBusError;
00029 class QDBusPendingCallWatcher;
00030 class PackageManagerPendingCallWatcher;
00031 class PackageManagerPendingFetchWatcher;
00032 class PackageManagerPrivate;
00033
00034 const QString PackageNameString("Name");
00035 const QString PackageVersionString("Version");
00036 const QString PackageInstalledSizeInt64("InstalledSize");
00037 const QString PackageDisplayNameString("DisplayName");
00038 const QString PackageDescriptionString("Description");
00039 const QString PackageCategoryString("Category");
00040 const QString PackageRepositoryString("Repository");
00041 const QString PackageIconDataString("IconData");
00042 const QString PackageState("State");
00043
00088 class PackageManager : public QObject
00089 {
00090 Q_OBJECT
00091
00092 public:
00096 enum ErrorCode
00097 {
00099 ErrorNone = 0,
00101 ErrorDbus,
00103 ErrorInternal,
00105 ErrorInvalidArgument,
00107 ErrorCheckUpdatesFailed,
00109 ErrorFileNotFound,
00111 ErrorInvalidFile,
00113 ErrorPackageNotUser,
00115 ErrorNoCandidate,
00117 ErrorPackageNotFound,
00119 ErrorPackageVersionNotFound,
00121 ErrorPackageNotInstalled,
00123 ErrorPackageNotCompatible,
00125 ErrorDependenciesPreventUninstall,
00127 ErrorMissingDependencies,
00129 ErrorDownloadFailed,
00131 ErrorOperationFailed,
00133 ErrorUpgradeFailed,
00135 ErrorPackageAlreadyInstalled,
00137 ErrorPackageAlreadyNewest,
00139 ErrorNewerVersionInstalled,
00141 ErrorRequiresOlderVersionOfDependency,
00143 ErrorInvalidOperation,
00145 ErrorNoOperation,
00147 ErrorNotCancelable,
00149 ErrorOperationCanceled,
00151 ErrorUnknown
00152 };
00153
00157 PackageManager();
00158
00164 ~PackageManager();
00165
00169 int callTimeout;
00170
00171 public Q_SLOTS:
00172
00214 PackageManagerPendingFetchWatcher* fetchCurrentOperationData();
00215
00229 PackageManagerPendingFetchWatcher* fetchPackages(const QString &category = "");
00230
00245 PackageManagerPendingFetchWatcher* fetchAvailableUpdates(const QString &category = "");
00246
00259 PackageManagerPendingFetchWatcher* fetchInstalled();
00260
00273 PackageManagerPendingFetchWatcher* fetchPackageDataFile(const QString &filename);
00274
00288 PackageManagerPendingFetchWatcher* fetchPackageDataRemote(const QString &packagename, const QString& version = QString());
00289
00302 PackageManagerPendingFetchWatcher* fetchPackageDataInstalled(const QString &packagename);
00303
00316 PackageManagerPendingFetchWatcher* fetchFilesOfInstalledPackage(const QString &packagename);
00317
00331 PackageManagerPendingFetchWatcher* fetchPackageDependencyData(const QString &packagename);
00332
00344 PackageManagerPendingFetchWatcher* fetchRestoreStatus();
00345
00358 PackageManagerPendingFetchWatcher* fetchRestorablePackages();
00359
00371 PackageManagerPendingFetchWatcher* simulateOperation(const QString &operation, const QString &packageidentifier, const QString &version, const QString &flags);
00372
00373 public Q_SLOTS:
00388 PackageManagerPendingCallWatcher* ignoreUpdatePackage( const QString &packagename, const QString &version );
00389
00405 PackageManagerPendingCallWatcher* refreshPackageCache( const QString &onlyDomain, const QString &flags );
00406
00422 PackageManagerPendingCallWatcher* installFile( const QString &filename );
00423
00441 PackageManagerPendingCallWatcher* install( const QString &packagename, const QString &version = QString() );
00442
00460 PackageManagerPendingCallWatcher* upgrade( const QString &packagename, const QString &version = QString() );
00461
00479 PackageManagerPendingCallWatcher* restore( const QString &packagename, const QString &version );
00480
00494 PackageManagerPendingCallWatcher* ignoreRestorePackage( const QString &packagename );
00495
00513 PackageManagerPendingCallWatcher* downloadSystemUpgrade( const QString &packagename, const QString &version = QString() );
00531 PackageManagerPendingCallWatcher* upgradeSystem( const QString &packagename, const QString &version = QString() );
00532
00548 PackageManagerPendingCallWatcher* uninstall( const QString &packagename );
00549
00570 PackageManagerPendingCallWatcher* upgradeAll();
00571
00591 PackageManagerPendingCallWatcher* cancelOperation(const QString &operation, const QString &packagename, const QString &version);
00592
00593 public Q_SLOTS:
00611 PackageManagerPendingCallWatcher* installFileUi( const QString &filename );
00612
00651 PackageManagerPendingCallWatcher* installPackageUi( const QString &packagename, const QString& version = "", const QString &origin = "", const QString &flags = "" );
00652
00670 PackageManagerPendingCallWatcher* uninstallUi( const QString &packagename );
00671
00688 PackageManagerPendingCallWatcher* upgradeAllUi();
00689
00702 PackageManagerPendingCallWatcher* restoreUi( const QString &packagename, const QString& version = "" );
00703
00712 void showInstallationExceptionUi( const QString &packagename );
00713
00735 PackageManagerPendingCallWatcher* refreshPackageCacheUi( const QString &origin = "", const QString &flags = "" );
00736
00737 public Q_SLOTS:
00749 void showOperationsPageUi( const QString& operation, const QString &packageidentifier, const QString& version = "" );
00750
00758 void showUpdatesPageUi();
00759
00768 void showRestorePageUi();
00769
00782 void showDetailsPageUi( const QString& type, const QString& packagename, const QString& version );
00783
00791 void showInstalledPageUi( const QString& packageidentifier );
00792
00793 signals:
00801 void operationComplete(const QString &operation, const QString &packagename, const QString &version, const QString &result, const bool need_reboot);
00802
00810 void downloadProgress(const QString &operation, const QString &packagename, const QString &version, int already, int total);
00811
00818 void operationStarted(const QString &operation, const QString &packagename, const QString &version);
00819
00828 void operationProgress(const QString &operation, const QString &packagename, const QString &version, int percentage);
00829
00837 void packageListUpdated(const bool updates_changed);
00838
00850 void operationAborted(const QString &operation, const QString &packageidentifier, const QString &version, const QString &reason);
00851
00858 void packageIgnored(const QString& type, const QString& packagename, const QString& version);
00859
00860 private:
00861 PackageManagerPrivate* const d_ptr;
00862 Q_DISABLE_COPY(PackageManager)
00863 Q_DECLARE_PRIVATE(PackageManager)
00864 };
00865
00866 #endif