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 ListItemDelegate(QObject *parent=0) : QStyledItemDelegate (parent) { }
61 void paint (QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
62 QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const;
67 QPixmap iIconPkgInstall;
68 QPixmap iIconPkgUpgrade;
69 QPixmap iIconPkgRemove;
70 QPixmap iIconPkgNoOpInstalled;
71 QPixmap iIconPkgNoOpNotInstalled;
72 QPixmap iIconPkgNoOpInstalledUpgradeable;
76 class PackageView : public QMainWindow
82 enum sortOrder { SortAlpha, SortDateDesc, SortSizeDesc };
84 explicit PackageView(QWidget *parent = 0);
87 void resizeEvent(QResizeEvent* event);
88 void setAptInterface(AAptInterface* a_) { iAptInterface=a_; }
89 void setSettings(Settings* s_) { iSettings=s_; }
90 dimmer* mydimmer() { return iDimmer; }
93 void setStatFilter(Package::packageStatus f_);
94 void setSortOrder(sortOrder s_) { iSortOrder = s_; }
95 void clearSelections();
96 void setSearchText(QString text);
97 void setSearchOptions(bool pkgname, bool dispname, bool dshort, bool dlong);
99 #ifdef Q_WS_MAEMO_5 // workaround for buggy Qt autorotation
102 QRect r = dynamic_cast<QMainWindow*>(this->parent())->rect();
103 if(r.width() < r.height()) {
104 this->setAttribute(Qt::WA_Maemo5PortraitOrientation);
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);
120 static const int CatFilterAllMarked = 0;
121 static const int CatFilterAllUser = 1;
122 static const int CatFilterBlacklisted = 16;
125 void orientationChanged();
126 void on_actionSearch_triggered();
129 void changeEvent(QEvent *e);
130 AAptInterface* iAptInterface;
131 //MainWindow::operation iOperation;
132 void closeEvent(QCloseEvent *event);
135 bool doFilterCategory(Package* pkg);
136 QString generateSortString(Package* pkg);
137 void addListItem(Package* pkg_, QString listname_);
138 void updateLabel(void);
143 MainWindow* iMainWindow;
144 QBoxLayout* iPkgLayout;
146 QLabel* iListCoverLabel;
149 QStringList iCatFilterLabels;
150 QStringList iCatFilterStrings;
151 int iSelectedCatFilter;
152 int iDefaultCatFilter;
154 QStringList iStatFilterLabels;
155 int iSelectedStatFilter;
156 sortOrder iSortOrder;
157 bool iSortNoticeShown;
159 QList<Package*> iSearchResults;
160 QString iPrevSearchText;
161 KeyEventGrabber* iKeyFilter;
164 bool iSearchDisplayName;
165 bool iSearchDescShort;
166 bool iSearchDescLong;
168 int iPackagesEmptySort;
171 void on_pushButton_searchOptions_clicked();
172 void on_actionRestore_all_triggered();
173 void on_actionSave_selections_triggered();
174 void on_actionLoad_selections_triggered();
175 void on_btn_Sort_clicked();
176 void on_actionView_log_triggered();
177 void on_actionUpgrade_all_triggered();
178 void on_lineEdit_textEdited(QString );
179 void on_btn_searchClose_clicked();
180 void on_actionHelp_triggered();
181 void on_btn_StatusFilter_clicked();
182 void on_btn_CategoryFilter_clicked();
183 void on_listWidget_itemClicked(QListWidgetItem* item);
184 void on_actionClear_selections_triggered();
185 void on_btn_Commit_clicked();
189 class KeyEventGrabber : public QObject
193 KeyEventGrabber(QObject* parent = 0);
196 bool eventFilter(QObject *obj, QEvent *event);
201 #endif // PACKAGEVIEW_H