##// END OF EJS Templates
QHexEdit default size behavior is now beter.
QHexEdit default size behavior is now beter.

File last commit:

r0:1aa783210b8e default
r9:e707856c0191 default
Show More
memsizewdgt.cpp
99 lines | 2.4 KiB | text/x-c | CppLexer
#include "memsizewdgt.h"
#include "QStringList"
MemSizeWdgt::MemSizeWdgt(QWidget *parent) :
QWidget(parent)
{
this->mainLayout = new QHBoxLayout;
this->sizeValue = new QLineEdit;
this->sizeUnit = new QComboBox;
this->sizeUnit->addItems(QStringList()<<tr("B")<<tr("kB")<<tr("MB")<<tr("GB")<<tr("TB"));
this->mainLayout->addWidget(this->sizeValue);
this->mainLayout->addWidget(this->sizeUnit);
this->setLayout(this->mainLayout);
connect(this->sizeValue,SIGNAL(returnPressed()),this,SLOT(setSizeValue()));
this->sizeValue->setText(QString::number(1));
this->maximum = (unsigned int)-1;
}
MemSizeWdgt::MemSizeWdgt(int defaultSize,QWidget *parent):
QWidget(parent)
{
this->mainLayout = new QHBoxLayout;
this->sizeValue = new QLineEdit;
this->sizeUnit = new QComboBox;
this->sizeUnit->addItems(QStringList()<<tr("B")<<tr("kB")<<tr("MB")<<tr("GB")<<tr("TB"));
this->mainLayout->addWidget(this->sizeValue);
this->mainLayout->addWidget(this->sizeUnit);
this->setLayout(this->mainLayout);
connect(this->sizeValue,SIGNAL(returnPressed()),this,SLOT(setSizeValue()));
this->sizeValue->setText(QString::number(defaultSize));
this->setSizeValue();
this->maximum = (unsigned int)-1;
}
void MemSizeWdgt::setSizeValue(int size)
{
this->sizeValue->setText(QString::number(size));
}
void MemSizeWdgt::setSizeValue(QString size)
{
this->sizeValue->setText(size);
this->setSizeValue();
}
void MemSizeWdgt::updateSizeValue()
{
this->setSizeValue();
}
void MemSizeWdgt::show()
{
QWidget::show();
}
void MemSizeWdgt::setSizeValue()
{
int unit=0;
double localSize=this->getsize();
if(localSize>this->maximum)
{
localSize = maximum;
}
if(localSize<0)
{
localSize = 0;
}
while(localSize>1024.0)
{
localSize=localSize/1024;
unit++;
}
if((unsigned int)this->sizeValue->text().toDouble()!=localSize)
{
this->sizeValue->setText(QString::number(localSize));
this->sizeUnit->setCurrentIndex(unit);
}
}
int MemSizeWdgt::getsize()
{
double size = this->sizeValue->text().toDouble();
int unit=this->sizeUnit->currentIndex();
while(unit>0)
{
size = size*1024;
unit--;
}
return (int)size;
}
void MemSizeWdgt::setMaximum(unsigned int max)
{
this->maximum = max;
}