]> icculus.org git repositories - duncan/yast2-qt4.git/blob - src/pkg/YQPackageSelectorBase.h
restart qt4 porting
[duncan/yast2-qt4.git] / src / pkg / YQPackageSelectorBase.h
1 /*---------------------------------------------------------------------\
2 |                                                                      |
3 |                      __   __    ____ _____ ____                      |
4 |                      \ \ / /_ _/ ___|_   _|___ \                     |
5 |                       \ V / _` \___ \ | |   __) |                    |
6 |                        | | (_| |___) || |  / __/                     |
7 |                        |_|\__,_|____/ |_| |_____|                    |
8 |                                                                      |
9 |                               core system                            |
10 |                                                        (C) SuSE GmbH |
11 \----------------------------------------------------------------------/
12
13   File:       YQPackageSelectorBase.h
14
15   Author:     Stefan Hundhammer <sh@suse.de>
16
17 /-*/
18
19
20 #ifndef YQPackageSelectorBase_h
21 #define YQPackageSelectorBase_h
22
23 #include <qvbox.h>
24 #include "YPackageSelector.h"
25 #include "YQZypp.h"
26
27
28 class QY2ComboTabWidget;
29 class QAction;
30
31 class YQPkgConflictDialog;
32 class YQPkgDiskUsageList;
33
34
35 /**
36  * Abstract base class for package selectors.
37  **/
38 class YQPackageSelectorBase : public QVBox, public YPackageSelector
39 {
40     Q_OBJECT
41
42 protected:
43
44     /**
45      * Constructor
46      *
47      * Will initialize package and selection managers and create conflict
48      * dialogs.
49      **/
50     YQPackageSelectorBase( YWidget * parent, long modeFlags = 0 );
51
52     /**
53      * Destructor
54      **/
55     virtual ~YQPackageSelectorBase();
56
57
58 public:
59     /**
60      * Set enabled/disabled state.
61      *
62      * Reimplemented from YWidget.
63      **/
64     virtual void setEnabling( bool enabled );
65
66     /**
67      * Preferred width of the widget.
68      *
69      * Reimplemented from YWidget.
70      **/
71     virtual int preferredWidth();
72
73     /**
74      * Preferred height of the widget.
75      *
76      * Reimplemented from YWidget.
77      **/
78     virtual int preferredHeight();
79
80     /**
81      * Set the new size of the widget.
82      *
83      * Reimplemented from YWidget.
84      **/
85     virtual void setSize( int newWidth, int newHeight );
86
87     /**
88      * Accept the keyboard focus.
89      *
90      * Reimplemented from YWidget.
91      **/
92     virtual bool setKeyboardFocus();
93
94
95 public slots:
96
97     /**
98      * Resolve dependencies (unconditionally) for all resolvables.
99      *
100      * Returns QDialog::Accepted or QDialog::Rejected.
101      **/
102     int resolveDependencies();
103
104     /**
105      * Verifies dependencies of the currently installed system.
106      *
107      * Returns QDialog::Accepted or QDialog::Rejected.
108      **/
109     int verifySystem();
110
111     /**
112      * Check for disk overflow and post a warning dialog if necessary.
113      * The user can choose to override this warning.
114      *
115      * Returns QDialog::Accepted if no warning is necessary or if the user
116      * wishes to override the warning, QDialog::Rejected otherwise.
117      **/
118     int checkDiskUsage();
119
120     /**
121      * Display a list of automatically selected packages
122      * (excluding packages contained in any selections that are to be installed)
123      **/
124     void showAutoPkgList();
125
126     /**
127      * Close processing and abandon changes
128      **/
129     void reject();
130
131     /**
132      * Close processing and accept changes
133      **/
134     void accept();
135
136     /**
137      * Inform user about a feature that is not implemented yet.
138      * This should NEVER show up in the final version.
139      **/
140     void notImplemented();
141
142
143 signals:
144
145     /**
146      * Emitted when package resolving is started.
147      * This can be used for some kind of "busy display".
148      **/
149     void resolvingStarted();
150
151     /**
152      * Emitted when package resolving is finished.
153      **/
154     void resolvingFinished();
155
156
157 protected slots:
158
159     /**
160      * Reset all previously ignored dependency problems.
161      **/
162     void resetIgnoredDependencyProblems();
163
164
165 protected:
166
167     /**
168      * Show all license agreements the user has not confirmed yet
169      * (for all packages that will be installed, and in YOU mode also for
170      * patches).
171      *
172      * Returns 'true' if all licenses were confirmed, 'false' if one or more
173      * licenses were not confirmed (in which case some packages might be set to
174      * S_TABOO, which might require another resolver run).
175      **/
176     bool showPendingLicenseAgreements();
177
178     /**
179      * Show all license agreements in a resolvable range. To be used with
180      * zyppPkgBegin() and zyppPkgEnd() or with zyppPatchesBegin() and
181      * zyppPatchesEnd().
182      **/
183     bool showPendingLicenseAgreements( ZyppPoolIterator begin,
184                                        ZyppPoolIterator end );
185
186     /**
187      * Event handler for keyboard input - for debugging and testing.
188      *
189      * Reimplemented from QWidget.
190      **/
191     virtual void keyPressEvent( QKeyEvent * ev );
192
193
194     // Data members
195
196     bool                        _showChangesDialog;
197     YQPkgConflictDialog *       _pkgConflictDialog;
198     YQPkgDiskUsageList *        _diskUsageList;
199     QAction *                   _actionResetIgnoredDependencyProblems;
200 };
201
202
203
204 #endif // YQPackageSelectorBase_h