- progagate status changed signal
[opensuse:kupdateapplet.git] / updater / packagekit / packagekit_updater.h
1 /*
2    Copyright (C) 2006,2007.2008 Novell Inc
3
4    This program is free software; you can redistribute it and/or
5    modify it under the terms of the GNU General Public
6    License as published by the Free Software Foundation; either
7    version 2 of the License, or (at your option) any later version.
8
9    This program 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 GNU
12    General Public License for more details.
13
14    You should have received a copy of the GNU General Public License
15    along with this program; see the file COPYING.  If not, write to
16    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17    Boston, MA 02110-1301, USA.
18 */
19
20 #ifndef _PACKAGEKIT_UPDATER_H_
21 #define _PACKAGEKIT_UPDATER_H_
22
23 #include "Updater.h"
24 #include "Pklicensedialog.h"
25 #include <QtCore/QList>
26 #include <QProcess>
27
28 #include <QPackageKitConnector.h>
29 class QPackageKitConnector;
30
31 class PackageKitUpdater : public Updater
32 {
33         Q_OBJECT
34 public:
35
36         PackageKitUpdater( QObject *parent, const QStringList&);
37         virtual ~PackageKitUpdater() {};
38
39         virtual UpdaterCapabilities capabilities();
40         virtual void shutdown();
41
42 private slots:
43
44         // Slot which gets called when we need to throw up the add/remove server dialog.
45         void slotConfigureUpdater();
46
47         // Slot which gets called when we need to start an update. 
48         // Collect our update info from the list we got passed 
49         // in populateList and go. 
50         void slotStartInstall();
51
52         // Slot which gets called when we need to check for updates 
53         // and load up the list. 
54         void slotPopulateLists(Q3ListView* patchList, Q3ListView* packageList, bool displayProgress = false);
55
56         // Slot which gets called when the user selects an update. 
57         // We are expected to write a description of the update and pass it back.
58         void slotResolvableSelected(Q3ListViewItem* item, int);
59
60 protected slots:
61         void slotShowLog();
62   void slotDeviceAdded( const QString & );
63 public slots:
64
65         // slots for communication with packagekit
66         void slotNewPackage(const QString& info, const QString& package_id, const QString& summary);
67         void slotGotDetails(const QString &package_id, const QString &licence, const QString &group,
68                 const QString &detail, const QString &url, qulonglong size); 
69         void slotTransactionFinished(QPackageKitConnector::Exit::ExitEnum exitCode, uint runtime);
70         void slotNoProgressInfo();
71         void slotUpdateProgress(uint percentage, uint subpercentage, uint elapsed, uint remaining); 
72         void slotError(const QString &message);
73         void slotUpdatesFinished();     
74         void slotShowEula(const QString& eula_id, const QString& package_id, const QString& vendor_name,
75                 const QString& license_agreement);
76
77         void slotRepoSignatureRequired(const QString &package_id, const QString &repository_name,
78                 const QString  &key_url, const QString &key_userid, const QString &key_id,
79                 const QString &key_fingerprint, const QString &key_timestamp, const QString &type);
80
81   void slotStatusChanged( const QString &status );
82         void slotRepoDetail(const QString &repo_id, const QString &desc, bool enabled);
83
84 private:
85         void doCheckForUpdates();
86         QPackageKitConnector * pkConnector ;
87
88         Q3ListView *_patchList;
89         Q3ListView *_packageList;
90
91         int _packageDescriptionCount;
92         void updateStatus();
93
94         bool _securityAvailable;
95         bool _errors;
96         bool _updateRepoAvailable;
97
98         PkLicenseDialog *licenseDialog;
99
100         bool checkRegistrationRan();
101
102   QString _lastStatus;
103 };
104
105 #endif
106
107 // vim: ts=2 noet sw=2