00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef QY2DiskUsageList_h
00025 #define QY2DiskUsageList_h
00026
00027 #include <QY2ListView.h>
00028 #include <y2util/FSize.h>
00029 #include <qcolor.h>
00030
00031
00032 class QY2DiskUsageListItem;
00033
00034
00038 class QY2DiskUsageList : public QY2ListView
00039 {
00040 Q_OBJECT
00041
00042 public:
00043
00050 QY2DiskUsageList( QWidget * parent, bool addStdColumns = true );
00051
00055 virtual ~QY2DiskUsageList();
00056
00057
00058
00059
00060 int nameCol() const { return _nameCol; }
00061 int percentageBarCol() const { return _percentageBarCol; }
00062 int percentageCol() const { return _percentageCol; }
00063 int usedSizeCol() const { return _usedSizeCol; }
00064 int freeSizeCol() const { return _freeSizeCol; }
00065 int totalSizeCol() const { return _totalSizeCol; }
00066 int deviceNameCol() const { return _deviceNameCol; }
00067
00068
00069 protected:
00070
00071
00072
00073 int _nameCol;
00074 int _percentageBarCol;
00075 int _percentageCol;
00076 int _usedSizeCol;
00077 int _freeSizeCol;
00078 int _totalSizeCol;
00079 int _deviceNameCol;
00080 };
00081
00082
00083
00090 class QY2DiskUsageListItem: public QY2ListViewItem
00091 {
00092 protected:
00101 QY2DiskUsageListItem( QY2DiskUsageList * parent );
00102
00103
00107 virtual ~QY2DiskUsageListItem();
00108
00109
00110 public:
00111
00118 virtual FSize usedSize() const = 0;
00119
00125 virtual FSize totalSize() const = 0;
00126
00134 virtual FSize freeSize() const;
00135
00143 virtual int usedPercent() const;
00144
00152 virtual QString name() const = 0;
00153
00160 virtual QString deviceName() const { return ""; }
00161
00162
00169 virtual void updateStatus();
00170
00177 virtual void updateData();
00178
00183 void setText( int column, const QString & text )
00184 { QListViewItem::setText( column, text ); }
00185
00189 void setText( int column, const FSize & size );
00190
00200 virtual int compare( QListViewItem * other,
00201 int col,
00202 bool ascending ) const;
00203
00204
00205
00206 int nameCol() const { return _diskUsageList->nameCol(); }
00207 int percentageBarCol() const { return _diskUsageList->percentageBarCol(); }
00208 int percentageCol() const { return _diskUsageList->percentageCol(); }
00209 int usedSizeCol() const { return _diskUsageList->usedSizeCol(); }
00210 int freeSizeCol() const { return _diskUsageList->freeSizeCol(); }
00211 int totalSizeCol() const { return _diskUsageList->totalSizeCol(); }
00212 int deviceNameCol() const { return _diskUsageList->deviceNameCol(); }
00213
00214
00215 protected:
00216
00221 void init( bool allFields );
00222
00228 virtual void paintCell( QPainter * painter,
00229 const QColorGroup & colorGroup,
00230 int column,
00231 int width,
00232 int alignment );
00233
00241 void paintPercentageBar( float percent,
00242 QPainter * painter,
00243 int indent,
00244 int width,
00245 const QColor & fillColor,
00246 const QColor & barBackground );
00247
00253 QColor contrastingColor ( const QColor & desiredColor,
00254 const QColor & contrastColor );
00255
00263 virtual QColor interpolateColor( int val,
00264 int minVal,
00265 int maxVal,
00266 const QColor & minColor,
00267 const QColor & maxColor );
00268
00273 int interpolate( int from,
00274 int minFrom, int maxFrom,
00275 int minTo, int maxTo );
00276
00277
00278
00279
00280 QY2DiskUsageList * _diskUsageList;
00281 };
00282
00283
00284
00285
00286 #endif // ifndef QY2DiskUsageList_h