00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \----------------------------------------------------------------------/ 00012 00013 File: YQPkgDiskUsageList.h 00014 00015 Author: Stefan Hundhammer <sh@suse.de> 00016 00017 /-*/ 00018 00019 // -*- c++ -*- 00020 00021 00022 #ifndef YQPkgDiskUsageList_h 00023 #define YQPkgDiskUsageList_h 00024 00025 #include <QY2DiskUsageList.h> 00026 #include <y2pm/PkgDu.h> 00027 #include <qasciidict.h> 00028 00029 class YQPkgDiskUsageListItem; 00030 typedef PkgDuMaster::MountPoint YQPkgDuData; 00031 00032 00033 00057 class YQPkgWarningRangeNotifier 00058 { 00059 public: 00060 00064 YQPkgWarningRangeNotifier(); 00065 00070 void enterRange(); 00071 00077 void enterProximity(); 00078 00082 void warningPostedNotify(); 00083 00088 bool inRange() const; 00089 00095 bool needWarning() const; 00096 00100 bool leavingProximity() const; 00101 00105 void clear(); 00106 00111 void clearHistory(); 00112 00113 00114 protected: 00115 00116 bool _inRange; 00117 bool _isClose; 00118 bool _hasBeenClose; 00119 bool _warningPosted; 00120 }; 00121 00122 00123 00124 00125 00129 class YQPkgDiskUsageList : public QY2DiskUsageList 00130 { 00131 Q_OBJECT 00132 00133 public: 00141 YQPkgDiskUsageList( QWidget * parent, int thresholdPercent = 0 ); 00142 00146 virtual ~YQPkgDiskUsageList() {} 00147 00151 void fakeData(); 00152 00158 virtual QSize sizeHint() const; 00159 00163 YQPkgWarningRangeNotifier runningOutWarning; 00164 00168 YQPkgWarningRangeNotifier overflowWarning; 00169 00170 00171 public slots: 00172 00176 void updateDiskUsage(); 00177 00182 void postPendingWarnings(); 00183 00184 00185 protected: 00186 00193 virtual void keyPressEvent( QKeyEvent * ev ); 00194 00195 00196 // Data members 00197 00198 QAsciiDict<YQPkgDiskUsageListItem> _items; 00199 bool _debug; 00200 }; 00201 00202 00203 00204 class YQPkgDiskUsageListItem: public QY2DiskUsageListItem 00205 { 00206 public: 00207 00212 YQPkgDiskUsageListItem( YQPkgDiskUsageList * parent, 00213 YQPkgDuData duData ); 00214 00218 virtual ~YQPkgDiskUsageListItem() {} 00219 00223 YQPkgDuData duData() const { return _duData; } 00224 00228 void updateDuData( const YQPkgDuData & fromData ); 00229 00235 virtual FSize usedSize() const; 00236 00242 virtual FSize totalSize() const; 00243 00249 virtual QString name() const; 00250 00256 virtual QString deviceName() const { return ""; } 00257 00263 void checkRemainingDiskSpace(); 00264 00265 00266 protected: 00267 00268 // Data members 00269 00270 YQPkgDuData _duData; 00271 YQPkgDiskUsageList * _pkgDiskUsageList; 00272 }; 00273 00274 00275 00276 #endif // ifndef YQPkgDiskUsageList_h