88 lines
2.8 KiB
C++
88 lines
2.8 KiB
C++
#include "ReconStateDelegate.h"
|
|
#include "device/DeviceManager.h"
|
|
|
|
#include <QPainter>
|
|
#include <QProgressBar>
|
|
#include <QApplication>
|
|
|
|
ReconStateDelegate::ReconStateDelegate(QObject* aParent)
|
|
: QStyledItemDelegate(aParent)
|
|
{
|
|
|
|
}
|
|
|
|
void ReconStateDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
|
|
{
|
|
QVariant data = index.data(Qt::DisplayRole);
|
|
|
|
if (data.isValid())
|
|
{
|
|
int state = data.toInt();
|
|
QString displayText;
|
|
switch (state)
|
|
{
|
|
case 0:
|
|
displayText = tr("Wait to transfer");
|
|
break;
|
|
case 100:
|
|
{
|
|
displayText = tr("Transfering");
|
|
int progress = DeviceManager::Default()->getTransferProgress();
|
|
QRect textRect = option.rect;
|
|
textRect.setRight(option.rect.right() - 180);
|
|
painter->drawText(textRect, Qt::AlignCenter, displayText);
|
|
|
|
QRect progressBarRect = option.rect;
|
|
progressBarRect.setLeft(textRect.right() + 10);
|
|
progressBarRect.setRight(option.rect.right() - 5);
|
|
progressBarRect.setTop(option.rect.top() + 5);
|
|
progressBarRect.setBottom(option.rect.bottom() - 5);
|
|
|
|
QStyleOptionProgressBarV2 progressBarOption;
|
|
progressBarOption.rect = progressBarRect;
|
|
progressBarOption.minimum = 0;
|
|
progressBarOption.maximum = 100;
|
|
progressBarOption.progress = progress;
|
|
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &progressBarOption, painter);
|
|
|
|
return;
|
|
}
|
|
case 104:
|
|
displayText = tr("Transfer failed");
|
|
break;
|
|
case 200:
|
|
displayText = tr("Transfer completed");
|
|
break;
|
|
case 204:
|
|
displayText = tr("Recon create failed");
|
|
break;
|
|
case 300:
|
|
displayText = tr("Recon create succeed");
|
|
break;
|
|
case 400:
|
|
displayText = tr("Wait to recon");
|
|
break;
|
|
case 500:
|
|
displayText = tr("Recon ing");
|
|
break;
|
|
case 504:
|
|
displayText = tr("Recon failed");
|
|
break;
|
|
case 600:
|
|
displayText = tr("Recon succeed");
|
|
break;
|
|
case 604:
|
|
displayText = tr("PACS failed");
|
|
break;
|
|
case 999:
|
|
displayText = tr("PACS succeed");
|
|
break;
|
|
default:
|
|
displayText = tr("Unknow");
|
|
break;
|
|
}
|
|
|
|
painter->drawText(option.rect, Qt::AlignCenter, displayText);
|
|
}
|
|
}
|