Files
GUI/src/forms/recon/ReconStateDelegate.cpp

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);
}
}