DownloadProgressBar.h

Go to the documentation of this file.
00001 /*
00002 
00003 Copyright (C) 2005-2007 by Peter Dimov.
00004 
00005 This file is part of Calitko (http://www.calitko.org).
00006 
00007 Calitko is free software; you can redistribute it and/or modify
00008 it under the terms of the GNU General Public License as published by
00009 the Free Software Foundation; either version 2 of the License, or
00010 (at your option) any later version.
00011 
00012 Calitko is distributed in the hope that it will be useful,
00013 but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 GNU General Public License for more details.
00016 
00017 You should have received a copy of the GNU General Public License
00018 along with Calitko; if not, write to the Free Software
00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00020 
00021 */
00022 
00023 #ifndef DONLOADPROGRESSBAR_H
00024 #define DONLOADPROGRESSBAR_H
00025 
00026 namespace UIs {
00028 
00029 class DownloadProgressBar
00030 {
00031     REFERENCE_OBJECT (DownloadProgressBar)
00032 
00033     class Range{
00034         int _start;
00035         int _end;
00036     public:
00037         Range (int start, int end): _start(start), _end(end) {};
00038         int start () {return _start;}
00039         int end ()   {return _end;}
00040     };
00041 
00042     int fileSize;
00043     QList<Range> *requestedRanges;
00044     QList<Range> *downloadedRanges;
00045     QList<Range> *verifiedRanges;
00046 
00047     void paintRanges (QPainter *painter, const QRect &rect, QList<Range> *ranges);
00048 
00049 public:
00050     DownloadProgressBar ();
00051     ~DownloadProgressBar () {};
00052     void paint (QPainter *painter, const QRect *rect, const QStyleOptionViewItem & option);
00053     void setFileSize (int size);
00054     void addDownloadedRange (int start, int end);
00055 //  void addDownloadedRange (Range *range);
00056     void removeDownloadedRange (int start, int end);
00057     void addRequestedRange (int start, int end);
00058     void removeRequestedRange (int start, int end);
00059     void addVerifiedRange (int start, int end);
00060     void removeVerifiedRange (int start, int end);
00061 };
00062 
00063 } // namespace UIs
00065 
00066 #endif // DONLOADPROGRESSBAR_H