1 /*---------------------------------------------------------------------\
3 | __ __ ____ _____ ____ |
4 | \ \ / /_ _/ ___|_ _|___ \ |
5 | \ V / _` \___ \ | | __) | |
6 | | | (_| |___) || | / __/ |
7 | |_|\__,_|____/ |_| |_____| |
11 \----------------------------------------------------------------------/
13 File: YQPackageSelectorBase.h
15 Author: Stefan Hundhammer <sh@suse.de>
20 #ifndef YQPackageSelectorBase_h
21 #define YQPackageSelectorBase_h
25 #include "YPackageSelector.h"
29 class QY2ComboTabWidget;
32 class YQPkgConflictDialog;
33 class YQPkgDiskUsageList;
37 * Abstract base class for package selectors.
39 class YQPackageSelectorBase : public QFrame, public YPackageSelector
48 * Will initialize package and selection managers and create conflict
51 YQPackageSelectorBase( YWidget * parent, long modeFlags = 0 );
56 virtual ~YQPackageSelectorBase();
61 * Set enabled/disabled state.
63 * Reimplemented from YWidget.
65 virtual void setEnabling( bool enabled );
68 * Preferred width of the widget.
70 * Reimplemented from YWidget.
72 virtual int preferredWidth();
75 * Preferred height of the widget.
77 * Reimplemented from YWidget.
79 virtual int preferredHeight();
82 * Set the new size of the widget.
84 * Reimplemented from YWidget.
86 virtual void setSize( int newWidth, int newHeight );
89 * Accept the keyboard focus.
91 * Reimplemented from YWidget.
93 virtual bool setKeyboardFocus();
96 * Event filter to handle WM_CLOSE like "Cancel"
98 * Reimplemented from QObject.
100 virtual bool eventFilter( QObject * obj, QEvent * event );
106 * Resolve dependencies (unconditionally) for all resolvables.
108 * Returns QDialog::Accepted or QDialog::Rejected.
110 int resolveDependencies();
113 * Verifies dependencies of the currently installed system.
115 * Returns QDialog::Accepted or QDialog::Rejected.
120 * Check for disk overflow and post a warning dialog if necessary.
121 * The user can choose to override this warning.
123 * Returns QDialog::Accepted if no warning is necessary or if the user
124 * wishes to override the warning, QDialog::Rejected otherwise.
126 int checkDiskUsage();
129 * Display a list of automatically selected packages
130 * (excluding packages contained in any selections that are to be installed)
132 void showAutoPkgList();
135 * Close processing and abandon changes
140 * Close processing and accept changes
145 * Inform user about a feature that is not implemented yet.
146 * This should NEVER show up in the final version.
148 void notImplemented();
154 * Emitted when package resolving is started.
155 * This can be used for some kind of "busy display".
157 void resolvingStarted();
160 * Emitted when package resolving is finished.
162 void resolvingFinished();
168 * Reset all previously ignored dependency problems.
170 void resetIgnoredDependencyProblems();
176 * Show all license agreements the user has not confirmed yet
177 * (for all packages that will be installed, and in YOU mode also for
180 * Returns 'true' if all licenses were confirmed, 'false' if one or more
181 * licenses were not confirmed (in which case some packages might be set to
182 * S_TABOO, which might require another resolver run).
184 bool showPendingLicenseAgreements();
187 * Show all license agreements in a resolvable range. To be used with
188 * zyppPkgBegin() and zyppPkgEnd() or with zyppPatchesBegin() and
191 bool showPendingLicenseAgreements( ZyppPoolIterator begin,
192 ZyppPoolIterator end );
195 * Event handler for keyboard input - for debugging and testing.
197 * Reimplemented from QWidget.
199 virtual void keyPressEvent( QKeyEvent * ev );
204 bool _showChangesDialog;
205 YQPkgConflictDialog * _pkgConflictDialog;
206 YQPkgDiskUsageList * _diskUsageList;
207 QAction * _actionResetIgnoredDependencyProblems;
212 #endif // YQPackageSelectorBase_h