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 #ifndef OPACKAGEMANAGER_H
00032 #define OPACKAGEMANAGER_H
00033
00034 #include "oipkg.h"
00035
00036 #include <qpe/config.h>
00037
00038 #include <qdict.h>
00039 #include <qobject.h>
00040 #include <qstringlist.h>
00041
00042 class OPackageManager : public QObject
00043 {
00044 Q_OBJECT
00045
00046 public:
00047 OPackageManager( Config *config = 0x0, QObject *parent = 0x0, const char *name = 0x0 );
00048
00049 void loadAvailablePackages();
00050 void loadInstalledPackages();
00051
00052 enum Status { All, NotInstalled, Installed, Updated, NotDefined };
00053
00054 OPackageList *packages();
00055 OPackageList *filterPackages( const QString &name = QString::null,
00056 const QString &server = QString::null,
00057 const QString &destination = QString::null,
00058 Status status = NotDefined,
00059 const QString &category = QString::null );
00060
00061 const QStringList &categories() { return m_categories; }
00062 QStringList servers();
00063 QStringList destinations();
00064
00065 int compareVersions( const QString &version1, const QString &version2 );
00066
00067 OConfItem *findConfItem( OConfItem::Type type = OConfItem::NotDefined,
00068 const QString &name = QString::null );
00069 OPackage *findPackage( const QString &name = QString::null );
00070
00071 bool configureDlg( bool installOptions = false );
00072 void saveSettings();
00073
00074 bool executeCommand( OPackage::Command command = OPackage::NotDefined,
00075 const QStringList ¶meters = QStringList(),
00076 const QString &destination = QString::null, const QObject *receiver = 0x0,
00077 const char *slotOutput = 0x0, bool rawOutput = true );
00078
00079 private:
00080 Config *m_config;
00081 OIpkg m_ipkg;
00082 QDict<OPackage> m_packages;
00083 QStringList m_categories;
00084
00085 void parseVersion( const QString &verstr, int *epoch, QString *version, QString *revision );
00086 int verrevcmp( const char *val, const char *ref );
00087
00088 signals:
00089 void initStatus( int numSteps );
00090 void statusText( const QString &status );
00091 void statusBar( int currStep );
00092 };
00093
00094 #endif