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 <QMainWindow>
25 #include "mainwindow.h"
36 class KeyEventGrabber;
39 enum UserRoles { UserRoleName=Qt::UserRole, UserRoleVersion, UserRoleDescShort,
40 UserRoleMarked, UserRoleInstalled, UserRoleUpgradeable, UserRoleAvailVersion,
41 UserRoleCurrentStatFilter, UserRoleCurrentCatFilter, UserRoleBlacklisted };
44 class PackageListWidgetItem : public QListWidgetItem
47 PackageListWidgetItem(Package* p_, QString name_);
49 Package* package() { return iPackage; }
56 class ListItemDelegate : public QStyledItemDelegate
59 explicit ListItemDelegate(QObject *parent=0) : QStyledItemDelegate(parent) {}
60 virtual ~ListItemDelegate() {}
62 void paint (QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
63 QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const;
67 ListItemDelegate(const ListItemDelegate& old);
68 ListItemDelegate operator= (const ListItemDelegate& old);
71 QPixmap iIconPkgInstall;
72 QPixmap iIconPkgUpgrade;
73 QPixmap iIconPkgRemove;
74 QPixmap iIconPkgNoOpInstalled;
75 QPixmap iIconPkgNoOpNotInstalled;
76 QPixmap iIconPkgNoOpInstalledUpgradeable;
80 class PackageView : public QMainWindow
86 enum sortOrder { SortAlpha, SortDateDesc, SortSizeDesc };
88 explicit PackageView(QWidget *parent);
89 virtual ~PackageView();
92 void resizeEvent(QResizeEvent* event);
93 void setAptInterface(AAptInterface* a_) { iAptInterface=a_; }
94 void setSettings(Settings* s_) { iSettings=s_; }
95 dimmer* mydimmer() { return iDimmer; }
98 void setStatFilter(Package::packageStatus f_);
99 void setSortOrder(sortOrder s_) { iSortOrder = s_; }
100 void clearSelections();
101 void setSearchText(QString text);
102 void setSearchOptions(bool pkgname, bool dispname, bool dshort, bool dlong);
107 if( dynamic_cast<QMainWindow*>(this->parent())->testAttribute( Qt::WA_Maemo5AutoOrientation ) ) {
108 this->setAttribute( Qt::WA_Maemo5AutoOrientation );
110 this->setAttribute( Qt::WA_Maemo5LandscapeOrientation );
112 this->setAttribute(Qt::WA_Maemo5StackedWindow);
113 this->setWindowFlags( Qt::Window );
119 static const int CatFilterAllMarked = 0;
120 static const int CatFilterAllUser = 1;
121 static const int CatFilterBlacklisted = 16;
124 void orientationChanged();
125 void on_actionSearch_triggered();
128 void changeEvent(QEvent *e);
129 AAptInterface* iAptInterface;
130 //MainWindow::operation iOperation;
131 void closeEvent(QCloseEvent *event);
134 PackageView(const PackageView& old);
135 PackageView operator= (const PackageView& old);
137 bool doFilterCategory(Package* pkg);
138 QString generateSortString(Package* pkg);
139 void addListItem(Package* pkg_, QString listname_);
140 void updateLabel(void);
145 MainWindow* iMainWindow;
146 QBoxLayout* iPkgLayout;
148 QLabel* iListCoverLabel;
151 QStringList iCatFilterLabels;
152 QStringList iCatFilterStrings;
153 int iSelectedCatFilter;
154 int iDefaultCatFilter;
156 QStringList iStatFilterLabels;
157 int iSelectedStatFilter;
158 sortOrder iSortOrder;
159 bool iSortNoticeShown;
161 QList<Package*> iSearchResults;
162 QString iPrevSearchText;
163 KeyEventGrabber* iKeyFilter;
166 bool iSearchDisplayName;
167 bool iSearchDescShort;
168 bool iSearchDescLong;
170 int iPackagesEmptySort;
173 void on_actionStore_list_triggered();
174 void on_pushButton_searchOptions_clicked();
175 void on_actionRestore_all_triggered();
176 void on_actionSave_selections_triggered();
177 void on_actionLoad_selections_triggered();
178 void on_btn_Sort_clicked();
179 void on_actionView_log_triggered();
180 void on_actionUpgrade_all_triggered();
181 void on_lineEdit_textEdited(QString );
182 void on_btn_searchClose_clicked();
183 void on_actionHelp_triggered();
184 void on_btn_StatusFilter_clicked();
185 void on_btn_CategoryFilter_clicked();
186 void on_listWidget_itemClicked(QListWidgetItem* item);
187 void on_actionClear_selections_triggered();
188 void on_btn_Commit_clicked();
192 class KeyEventGrabber : public QObject
196 KeyEventGrabber(QObject* parent = 0);
199 bool eventFilter(QObject *obj, QEvent *event);
204 #endif // PACKAGEVIEW_H