RetroShare/retroshare-gui/src/gui/xprogressbar.h
csoler cfaaec31c7 - Implemented chunk-based file transfer from partial sources. This in particular means:
- exchange of chunk availability maps from different peers
    - correct handling of what is available to which source before asking the data
    - correct display of chunks in the progress bars
    - generalised the use of compressed chunk maps
    - removed the size parameters from the hash search functions
   
- In addition:
    - suppressed a number of per-value transfers of std::string
    - improved the FileTransferInfo Widget, to show some additional info

Still to be done:
    - chunk map exchange for non anonymous traffic (easy)
    - improve accuracy of completion for uploads (for now it's a integer number of chunks)
    - check compilation on windows




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1993 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2010-01-11 16:00:42 +00:00

82 lines
2.0 KiB
C++

/*
* xProgressBar: A custom progress bar for Qt 4.
* Author: xEsk (Xesc & Technology 2008)
*
* Changelog:
*
* v1.0:
* -----
* - First release
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#ifndef XPROGRESSBAR_H
#define XPROGRESSBAR_H
//
#include <stdint.h>
#include <QRect>
#include <QColor>
#include <QPainter>
#include <QLinearGradient>
#include <QLocale>
#include <rsiface/rstypes.h>
class FileProgressInfo
{
public:
CompressedChunkMap cmap ;
float progress ;
};
//
class xProgressBar : public QObject
{
Q_OBJECT
private:
// progress vlues
float progressValue;
int schemaIndex;
bool displayText;
int vSpan;
int hSpan;
// painter config
QRect rect;
QPainter *painter;
// text color
QColor textColor;
// progress colors
QColor backgroundBorderColor;
QColor backgroundColor;
QColor gradBorderColor;
QColor gradColor1;
QColor gradColor2;
// configure the color
void setColor();
const CompressedChunkMap& _cmap ;
public:
xProgressBar(const CompressedChunkMap& cmap,QRect rect, QPainter *painter, int schemaIndex = 0);
void paint();
void setColorSchema(const int value);
void setValue(const float value);
void setDisplayText(const bool display);
void setVerticalSpan(const int value);
void setHorizontalSpan(const int value);
};
#endif