Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

QY2DiskUsageList.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                                                                      |
00003 |                      __   __    ____ _____ ____                      |
00004 |                      \ \ / /_ _/ ___|_   _|___ \                     |
00005 |                       \ V / _` \___ \ | |   __) |                    |
00006 |                        | | (_| |___) || |  / __/                     |
00007 |                        |_|\__,_|____/ |_| |_____|                    |
00008 |                                                                      |
00009 |                          contributed Qt widgets                      |
00010 |                                                        (C) SuSE GmbH |
00011 \----------------------------------------------------------------------/
00012 
00013   File:       QY2DiskUsageList.h
00014 
00015   Author:     Stefan Hundhammer <sh@suse.de>
00016 
00017   This is a pure Qt widget - it can be used independently of YaST2.
00018 
00019 /-*/
00020 
00021 // -*- c++ -*-
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     // Column numbers
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     // Data members
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     // Columns
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     // Data members
00279 
00280     QY2DiskUsageList * _diskUsageList;
00281 };
00282 
00283 
00284 
00285 
00286 #endif // ifndef QY2DiskUsageList_h

Generated on Wed Sep 14 10:59:02 2005 for yast2-qt by  doxygen 1.4.4