2 This file is part of Faster Application Manager.
4 Faster Application Manager is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 Faster Application Manager is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with Faster Application Manager. If not, see <http://www.gnu.org/licenses/>.
17 (C) Heikki Holstila 2010
24 #include "blacklistselect.h"
32 enum operation { PkgOpNone, PkgOpInstallUpgrade, PkgOpRemove };
34 // the order must match status filter strings
35 enum packageStatus { PkgStatUnknown, PkgStatNotInstalled, PkgStatUpgradeable, PkgStatInstalled };
37 explicit Package(QByteArray name_, AAptInterface* apt_);
40 inline void setName(QByteArray n_) { iName=n_; }
41 inline void setMaemoDisplayName(QByteArray n_) { iMaemoDisplayName=n_; }
42 inline void setInstalled(bool i_) { iIsInstalled=i_; }
43 void setMarkedForOperation(operation op_);
44 inline void setVersion(QByteArray v_) { iVersion=v_; }
45 inline void setDescShort(QByteArray d_) { iDescriptionShort=d_; }
46 inline void appendDescLong(QByteArray d_) { iDescriptionLong.append(d_); }
47 inline void setSection(QByteArray s_) { iSection=s_; }
48 inline void setSize(int i_) { iSize=i_; }
49 inline void setInstalledSize(int i_) { iInstalledSize=i_; }
50 inline void appendIconData(QByteArray d_) { iIconData.append(d_); }
51 inline void addFullFileName(QString f_) { iFullFileNames.append(f_); }
53 inline void addRepository(Repository* r_) { iRepositories.append(r_); }
54 inline void setDate(QDateTime d_) { iDate=d_; }
55 inline void setBlacklisted(BlacklistSelect::blackList bl_) { iBlacklist=bl_; }
56 inline void appendDepends(QByteArray line_) { iDepends << line_.split(','); }
57 inline void appendConflicts(QByteArray line_) { iConflicts << line_.split(','); }
58 inline void appendPreDepends(QByteArray line_) { iPreDepends << line_.split(','); }
59 inline void appendProvides(QByteArray line_) { iProvides << line_.split(','); }
60 inline void appendReplaces(QByteArray line_) { iReplaces << line_.split(','); }
61 inline void appendBreaks(QByteArray line_) { iBreaks << line_.split(','); }
62 inline void appendRecommends(QByteArray line_) { iRecommends << line_.split(','); }
63 inline void appendSuggests(QByteArray line_) { iSuggests << line_.split(','); }
64 inline void appendUpgradeDescription(QByteArray d_) { iUpgradeDescription.append(d_); }
65 inline void setPinned(bool p_) { iPinned=p_; }
66 inline void setMaintainer(QByteArray m_) { iMaintainer = m_; }
70 inline QString name() const { return iName; }
71 inline QString maemoDisplayName() const { return QString::fromUtf8(iMaemoDisplayName); }
72 QString displayName() const;
73 inline bool isInstalled() const { return iIsInstalled; }
74 inline bool isMarkedForOperation() const { return iMarkedForOperation; }
75 inline operation markedOperation() const { return iMarkedOperation; }
76 inline QString version() const { return iVersion; }
77 inline QString descShort() const { return QString::fromUtf8(iDescriptionShort); }
78 inline QString descLong() const { return QString::fromUtf8(iDescriptionLong); }
79 inline QString section() const { return iSection; }
80 inline int size() const { return iSize; }
81 inline int installedSize() const { return iInstalledSize; }
82 inline QPixmap* icon() const { return iIcon; }
83 bool hasIconData() const;
84 bool isUpgradeable() const;
85 QString upgradeableVersion() const;
86 Package* availablePackage() const;
87 packageStatus status();
88 QString fileName() const;
89 inline QStringList fullFileNames() const { return iFullFileNames; }
90 inline QDateTime date() const { return iDate; }
91 inline QList<const Repository*> repositories() const { return iRepositories; }
92 inline BlacklistSelect::blackList blacklisted() const { return iBlacklist; }
93 inline bool isBlacklisted() const { if(iBlacklist==BlacklistSelect::BlacklistNone) return false; else return true; }
94 inline QString upgradeDescription() const { return QString::fromUtf8(iUpgradeDescription); }
95 inline QList<QByteArray> depends() const { return iDepends; }
96 inline QList<QByteArray> conflicts() const { return iConflicts; }
97 inline QList<QByteArray> preDepends() const { return iPreDepends; }
98 inline QList<QByteArray> provides() const { return iProvides; }
99 inline QList<QByteArray> replaces() const { return iReplaces; }
100 inline QList<QByteArray> breaks() const { return iBreaks; }
101 inline QList<QByteArray> recommends() const { return iRecommends; }
102 inline QList<QByteArray> suggests() const { return iSuggests; }
103 inline bool isPinned() const { return iPinned; }
104 QString maintainerRichText() const;
106 QStringList checkConflicts_RichText() const;
108 static bool versionCompare(QString isNewer, QString compare);
109 static QStringList toTrimmedRichTextList(QList<QByteArray> list_in);
112 Package(const Package& old);
113 Package operator= (const Package& old);
115 static bool versionConflicts(QString conflictVer, QString operVer);
117 AAptInterface* iAptInterface;
120 QByteArray iMaemoDisplayName;
122 bool iMarkedForOperation;
123 packageStatus iPkgStatus;
125 QByteArray iDescriptionShort;
126 QByteArray iDescriptionLong;
130 operation iMarkedOperation;
131 QStringList iFullFileNames;
133 QList<const Repository*> iRepositories;
134 BlacklistSelect::blackList iBlacklist;
135 QByteArray iUpgradeDescription;
136 QByteArray iMaintainer;
138 QByteArray iIconData;
141 QList<QByteArray> iDepends;
142 QList<QByteArray> iConflicts;
143 QList<QByteArray> iPreDepends;
144 QList<QByteArray> iProvides;
145 QList<QByteArray> iReplaces;
146 QList<QByteArray> iBreaks;
147 QList<QByteArray> iRecommends;
148 QList<QByteArray> iSuggests;