summaryrefslogtreecommitdiff
path: root/noncore/unsupported/oipkg/packagelist.h
blob: 68b89f046c8ef614752e106ebde566dece98cf21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifndef PACKAGELIST_H
#define PACKAGELIST_H

#include <qdict.h>
#include "package.h"
#include "pksettings.h"
#include "debug.h"

#define HACK
#ifdef HACK
  static QString listsDir="/usr/lib/ipkg/";
  static QString statusDir="/usr/lib/ipkg/";
#endif

class PackageList {
public:
  PackageList();
  PackageList( PackageManagerSettings* );
  ~PackageList();
  void insertPackage( Package* );
  Package* find( QString );
  Package* next();
  Package* first();

  QStringList getSections();
  QStringList getSubSections();
  void setSettings( PackageManagerSettings* );
  void filterPackages();
  /** No descriptions */
  Package* getByName( QString );

public slots:
  void setSection(QString);
  void setSubSection(QString);
  void update();

private:
  int currentPackage;
  int packageCount;

  PackageManagerSettings     *settings;
  QDict<Package>         packageList;
  QDict<Package>         origPackageList;
  QDictIterator<Package> packageIter;

  bool empty;
#ifndef HACK
  QString listsDir;
  QString statusDir;
#endif
  QString            aktSection;
  QString            aktSubSection;
  QStringList        sections;
  QDict<QStringList> subSections;
  QDict<bool> sectionsDict;


  void updateSections( Package* );
  void parseStatus();
  void parseList();
  void readFileEntries( QString );
};


#endif