0.7.1
[fapman] / packageselector.h
1 /*
2         This file is part of Faster Application Manager.
3
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.
8
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.
13
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/>.
16
17         (C) Heikki Holstila 2010
18 */
19
20 #ifndef PACKAGESELECTOR_H
21 #define PACKAGESELECTOR_H
22
23 #include <QDialog>
24 #include <QtNetwork>
25 #include "package.h"
26
27 namespace Ui {
28     class PackageSelector;
29 }
30
31 class AAptInterface;
32 class Settings;
33 class MainWindow;
34
35 class PackageSelector : public QDialog
36 {
37     Q_OBJECT
38
39 public:
40         explicit PackageSelector(Package* pkg, AAptInterface* apt, Settings* set, MainWindow* mw, QWidget *parent);
41         virtual ~PackageSelector();
42
43         /*
44 #ifdef Q_WS_MAEMO_5             // workaround for buggy Qt autorotation
45         int exec() {
46                 QRect r = dynamic_cast<QWidget*>(this->parent())->rect();
47                 if(r.width() < r.height())
48                         this->setAttribute(Qt::WA_Maemo5PortraitOrientation);
49                 int e = QDialog::exec();
50                 this->setAttribute(Qt::WA_Maemo5AutoOrientation);
51                 return e;
52         }
53 #endif
54         */
55
56         Package::operation selectedOperation();
57
58 protected:
59     void changeEvent(QEvent *e);
60
61 private:
62         PackageSelector(const PackageSelector& old);
63         PackageSelector operator= (const PackageSelector& old);
64
65         QString getMaemoOrgUrl(Package* pkg);
66         void updateInfo();
67         void queryChangelog();
68         QString parseChangeTable(QString tabledata);
69
70     Ui::PackageSelector *ui;
71         Package* iPkg;
72         AAptInterface* iAptInterface;
73         Settings* iSettings;
74         QNetworkAccessManager* iNetworkAccessManager;
75         MainWindow* iMainWindow;
76         bool iChangelogFetched;
77         bool iFetchInProgress;
78         QString iChangelog;
79
80 private slots:
81         void on_radioTabDepends_clicked();
82         void on_radioTabChanges_clicked();
83         void on_radioTabBasic_clicked();
84         void on_pushButton_website_clicked();
85         void on_pushButton_blacklist_clicked();
86
87         void changelogFetchNetworkReply(QNetworkReply* reply);
88 };
89
90 #endif // PACKAGESELECTOR_H