SVG5/formlistwidgetworklist.cpp
2025-10-12 13:55:56 +09:00

186 lines
4.6 KiB
C++

#include "formlistwidgetworklist.h"
#include "mainwindow.h"
FormListWidgetWorklist::FormListWidgetWorklist(QWidget *parent) : FormListWidget(parent)
{
connect(m_pListWidget, SIGNAL(ListSingleDown()), this, SLOT(ListSingleDown()));
connect(m_pListWidget, SIGNAL(ListSingleUp()), this, SLOT(ListSingleUp()));
m_nMaxItemShow = 10;
m_pListWidget->SetListType(SWIDGET_WORKLIST);
}
FormListWidgetWorklist::~FormListWidgetWorklist()
{
disconnect(m_pListWidget, SIGNAL(ListSingleDown()), this, SLOT(ListSingleDown()));
disconnect(m_pListWidget, SIGNAL(ListSingleUp()), this, SLOT(ListSingleUp()));
m_pListWidget->Clear();
}
void FormListWidgetWorklist::ExecuteMenu()
{
ChangeMenu(SMENU_CAPTURE);
}
void FormListWidgetWorklist::CellDoubleClicked(int nRow, int nColumn)
{
CommonData* pCommonData = MainWindow::GetCommonData();
vector<WorklistResponseData>* pListWorklist = pCommonData->GetWorklistData();
if(m_bExecMenu==false)
{
#ifdef _TEST_CODE
#else
if(nRow<pListWorklist->size())
{
int nSelectRow = GetSelectIndexWorklist(nRow);
if(nSelectRow<0)
{
nSelectRow = nRow;
}
WorklistResponseData rd = (*pListWorklist)[nSelectRow];
pCommonData->ReleaseWorklistData();
ACQUISITION_INFO* pAcquisitionInfo = pCommonData->GetAcquisitionInfo();
pAcquisitionInfo->SetDataPatient(rd.m_Patient);
pAcquisitionInfo->SetDataStudy(rd.m_Study);
pAcquisitionInfo->SetDataSeries(rd.m_Series);
pAcquisitionInfo->SetDataImage(rd.m_Image);
pAcquisitionInfo->SetDataScheduledData(rd.m_ScheduledData);
pCommonData->ReleaseAcquisitionInfo();
m_bExecMenu = true;
ExecuteMenu();
return;
}
#endif
}
else
{
pCommonData->ReleaseWorklistData();
}
}
void FormListWidgetWorklist::Init()
{
FormListWidget::Init();
m_bExecMenu = false;
m_pVerticalScrollBarWidget->hide();
m_pHorizontalScrollBarWidget->hide();
m_pListWidget->InitHeader();
m_pListWidget->setCurrentCell(-1, -1);
m_pListWidget->CheckHorizontalScroll();
setFocus(Qt::OtherFocusReason);
m_pListWidget->setFocus(Qt::OtherFocusReason);
}
void FormListWidgetWorklist::Clear()
{
m_pListWidget->Clear();
m_pListWidget->update();
}
void FormListWidgetWorklist::UpdateList()
{
m_pListWidget->UpdateWorklist();
CommonData* pCommonData = MainWindow::GetCommonData();
vector<WorklistResponseData>* pListWorklist = pCommonData->GetWorklistData();
int nSizeWorklist = pListWorklist->size();
pCommonData->ReleaseWorklistData();
if(nSizeWorklist>m_nMaxItemShow)
{
m_pVerticalScrollBar->setValue(0);
m_pVerticalScrollBarWidget->show();
}
else
{
m_pVerticalScrollBarWidget->hide();
}
m_pListWidget->CheckHorizontalScroll();
}
void FormListWidgetWorklist::ListSingleDown()
{
CommonData* pCommonData = MainWindow::GetCommonData();
QScrollBar* pScrollBar = m_pListWidget->verticalScrollBar();
float fMaxValue = 199.0f;
float fMaxScrollBar = 0.0f;
vector<HISTORY_STUDY*>* pListHistoryStudy = pCommonData->GetHistorySearchResult();
int nHistoryCount = pListHistoryStudy->size();
int nRemain = nHistoryCount - m_nMaxItemShow;
float fRatio = (float)fMaxValue / (float)nRemain + 1.5f;
int nValue = m_pVerticalScrollBar->value();
nValue = nValue + fRatio;
if(nValue > fMaxValue)
{
nValue = (int)fMaxValue;
}
m_pVerticalScrollBar->setValue(nValue);
}
void FormListWidgetWorklist::ListSingleUp()
{
CommonData* pCommonData = MainWindow::GetCommonData();
QScrollBar* pScrollBar = m_pListWidget->verticalScrollBar();
float fMaxValue = 199.0f;
float fMaxScrollBar = 0.0f;
vector<HISTORY_STUDY*>* pListHistoryStudy = pCommonData->GetHistorySearchResult();
int nHistoryCount = pListHistoryStudy->size();
int nRemain = nHistoryCount - m_nMaxItemShow;
float fRatio = (float)fMaxValue / (float)nRemain + 1.5f;
int nValue = m_pVerticalScrollBar->value();
nValue = nValue - fRatio;
if(nValue < 0)
{
nValue = 0;
}
m_pVerticalScrollBar->setValue(nValue);
}
void FormListWidgetWorklist::keyReleaseEvent(QKeyEvent *event)
{
SThreadImageSave* pThread = MainWindow::GetCommonData()->GetThreadCaptureImage();
int nKey = event->key();
if(nKey==Qt::Key_F10)
{
pThread->MissCapture();
}
else if(nKey==Qt::Key_F11)
{
pThread->MissCapture();
}
}
void FormListWidgetWorklist::SetExecMenu(bool bExecMenu)
{
m_bExecMenu = bExecMenu;
}